Shalom people, I'm new on this list, and to python in general. Fun with python to us.
I'm attaching my sanity checking script (which in the mean time doing it's job perfectly - getting me insanse :) The lines for error don't print with CR/LF but only with LF; I susspect curses is to blame but I have no experience with it and haven't found what proper switches/flags/objects I need to pass to it to make it work like expected. Current output """ ./ColorReport.py Check directory "/bin" exists [OK]Check directory "/usr" exists [OK]Check directory "/opt/hq4ever" exists Failed directory existance test Do you have my-core rpm installed Check directory "/opt/hq4ever" exists [FAIL] """ expected output """ ./ColorReport.py Check directory "/bin" exists [OK] Check directory "/usr" exists [OK] Check directory "/opt/hq4ever" exists Failed directory existence test Do you have my-core rpm installed Check directory "/opt/hq4ever" exists [FAIL] the code """ #!/usr/bin/python -u class ColorTerm: def __init__(self, Mono = False): pass def __get_tput_color_value__(colorcode): from commands import getoutput return getoutput('tput setaf ' + colorcode) BLACK_FG = __get_tput_color_value__('0') RED_FG = __get_tput_color_value__('1') GREEN_FG = __get_tput_color_value__('2') YELLOW_FG = __get_tput_color_value__('3') BLUE_FG = __get_tput_color_value__('4') MAGENTA_FG = __get_tput_color_value__('5') CYAN_FG = __get_tput_color_value__('6') WHITE_FG = __get_tput_color_value__('7') def black(self, msg): return self.BLACK_FG + msg + self.BLACK_FG def red(self, msg): return self.RED_FG + msg + self.BLACK_FG def green(self, msg): return self.GREEN_FG + msg + self.BLACK_FG def yellow(self, msg): return self.YELLOW_FG + msg + self.BLACK_FG def blue(self, msg): return self.BLUE_FG + msg + self.BLACK_FG def magenta(self, msg): return self.MAGENTA_FG + msg + self.BLACK_FG def cyan(self, msg): return self.CYAN_FG + msg + self.BLACK_FG def white(self, msg): return self.WHITE_FG + msg + self.BLACK_FG class StatusWriter(ColorTerm): import curses def __init__(self, report_type = None): pass def initstyle_message(self, printed_msg, status = True): screen = self.curses.initscr(); self.curses.endwin() if status: status_msg = '[' + self.green('OK') + ']' status_msg_len = len('['+'OK'+']') else: status_msg = '[' + self.red('FAIL') + ']' status_msg_len = len('['+'FAIL'+']') __spaces_count = ( screen.getmaxyx()[1] - (len(printed_msg)+status_msg_len) ) #print '' #print len(printed_msg) #print __spaces_count #print len(status_msg) #print '=', len(printed_msg)+__spaces_count+len(status_msg) return printed_msg + ' '*__spaces_count + status_msg def initstyle_skip_message(self, msg): screen = self.curses.initscr(); self.curses.endwin() status_msg = '[' + self.yellow('SKIP') + ']' __spaces_count = ( screen.getmaxyx()[1] - (len(msg)+len(status_msg)) ) return msg + ' '*__spaces_count + status_msg class SanityCheck(): cc = StatusWriter() def __init__(self, test_name, depends = []): self.status = None self.test_name = test_name self.depends = depends pass def directory_exists(self, dirpath): import os.path import sys usr_output_info = 'Check directory "' + dirpath + '" exists' sys.stdout.write(usr_output_info) if os.path.exists(dirpath): if self.status == None: self.status = True sys.stdout.write( self.cc.initstyle_message(usr_output_info) ) else: self.status = False print print "Failed directory existence test" print "Do you have", '-'.join(self.test_name.split('_')[:2]), "rpm installed" sys.stdout.write( self.cc.initstyle_message(usr_output_info, False) ) def file_exists(self, filepath): pass def directory_writable(self, dirpath): pass def file_executable(self, filepath): pass def oscommand(self, command): pass def docheck(self, check, predeps_check = []): pass for check_field in predeps_check: if not ChecksMap[check_field]: raise check_field + " failed!" pass my_core_paths = SanityCheck('my_core_paths') my_core_paths.directory_exists('/bin') my_core_paths.directory_exists('/usr') my_core_paths.directory_exists('/opt/hq4ever') """ Thanks for the helps guys (and girls). Maxim. -- Cheers, Maxim Veksler "Free as in Freedom" - Do u GNU ?