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 ?

לענות