Changeset 1608 for pykota/trunk/bin

Show
Ignore:
Timestamp:
07/21/04 00:42:26 (20 years ago)
Author:
jalet
Message:

pykosd now supports setting color

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/bin/pykosd

    r1607 r1608  
    2424# 
    2525# $Log$ 
     26# Revision 1.7  2004/07/20 22:42:26  jalet 
     27# pykosd now supports setting color 
     28# 
    2629# Revision 1.6  2004/07/20 22:29:49  jalet 
    2730# pykosd now supports setting the font 
     
    7174  -h | --help          Prints this message then exits. 
    7275   
     76  -c | --color #rrggbb Sets the color to use for display as an hexadecimal 
     77                       triplet, for example #FF0000 is 100%% red. 
     78                       Defaults to 100%% green (#00FF00). 
     79                        
    7380  -d | --duration d    Sets the duration of the display in seconds.  
    7481                       Defaults to 3 seconds. 
     
    127134            raise PyKotaToolError, _("Invalid sleep option %s") % str(options["sleep"]) 
    128135             
     136        color = options["color"]     
     137        if not color.startswith("#") : 
     138            color = "#%s" % color 
     139        if len(color) != 7 :     
     140            raise PyKotaToolError, _("Invalid color option %s") % str(color) 
     141        savecolor = color 
     142         
    129143        uid = os.geteuid() 
    130144        uname = pwd.getpwuid(uid)[0] 
    131145        while 1 : 
     146            color = savecolor 
    132147            user = cmd.storage.getUserFromBackend(uname)        # don't use cache 
    133148            if not user.Exists : 
     
    137152                upquotas = [ cmd.storage.getUserPQuotaFromBackend(user, p) for p in printers ] # don't use cache 
    138153                nblines = len(upquotas) 
    139                 display = pyosd.osd(font=options["font"], colour="#00FF00", timeout=duration, shadow=2, lines=nblines) 
     154                display = pyosd.osd(font=options["font"], colour=color, timeout=duration, shadow=2, lines=nblines) 
    140155                for line in range(nblines) : 
    141156                    upq = upquotas[line] 
     
    151166                if user.AccountBalance <= 0 : 
    152167                    color = "#FF0000" 
    153                 else :     
    154                     color = "#00FF00" 
    155168                display = pyosd.osd(font=options["font"], colour=color, timeout=duration, shadow=2) 
    156169                display.display(_("PyKota Units left : %.2f") % user.AccountBalance, type=pyosd.TYPE_STRING) 
     170                 
    157171            time.sleep(duration + 1) 
    158172            if loop : 
     
    168182    try : 
    169183        defaults = { \ 
     184                     "color" : "#00FF00", \ 
    170185                     "duration" : "3", \ 
    171186                     "font" : pyosd.default_font, \ 
     
    173188                     "sleep" : "180", \ 
    174189                   } 
    175         short_options = "hvd:f:l:s:" 
    176         long_options = ["help", "version", "duration=", "font=", "loop=", "sleep="] 
     190        short_options = "hvc:d:f:l:s:" 
     191        long_options = ["help", "version", "color=", "colour=", "duration=", "font=", "loop=", "sleep="] 
    177192         
    178193        cmd = PyKOSD(doc=__doc__) 
     
    184199        options["help"] = options["h"] or options["help"] 
    185200        options["version"] = options["v"] or options["version"] 
     201        options["color"] = options["c"] or options["color"] or options["colour"] or defaults["color"] 
    186202        options["duration"] = options["d"] or options["duration"] or defaults["duration"] 
    187203        options["font"] = options["f"] or options["font"] or defaults["font"]