Show
Ignore:
Timestamp:
09/27/05 20:34:31 (19 years ago)
Author:
jerome
Message:

Ensure that human made errors (like incorrect command line options)
don't produce a traceback anymore. No need to frighten users with
such complete tracebacks and email reporting each time they mistype
some command.
Makes pykosd check more carefully the values of its command line options.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/bin/pykosd

    r2344 r2512  
    3636    sys.exit(-1) 
    3737 
    38 from pykota.tool import PyKotaTool, PyKotaToolError, crashed, N_ 
     38from pykota.tool import PyKotaTool, PyKotaToolError, PyKotaCommandLineError, crashed, N_ 
    3939 
    4040__doc__ = N_("""pykosd v%(__version__)s (c) %(__years__)s %(__author__)s 
     
    8383        try :     
    8484            duration = int(options["duration"]) 
    85         except :     
    86             raise PyKotaToolError, _("Invalid duration option %s") % str(options["duration"]) 
     85            if duration <= 0 : 
     86                raise ValueError  
     87        except :     
     88            raise PyKotaCommandLineError, _("Invalid duration option %s") % str(options["duration"]) 
    8789             
    8890        try :     
    8991            loop = int(options["loop"]) 
    90         except :     
    91             raise PyKotaToolError, _("Invalid loop option %s") % str(options["loop"]) 
     92            if loop < 0 : 
     93                raise ValueError 
     94        except :     
     95            raise PyKotaCommandLineError, _("Invalid loop option %s") % str(options["loop"]) 
    9296             
    9397        try :     
    9498            sleep = float(options["sleep"]) 
    95         except :     
    96             raise PyKotaToolError, _("Invalid sleep option %s") % str(options["sleep"]) 
     99            if sleep <= 0 : 
     100                raise ValueError 
     101        except :     
     102            raise PyKotaCommandLineError, _("Invalid sleep option %s") % str(options["sleep"]) 
    97103             
    98104        color = options["color"]     
     
    100106            color = "#%s" % color 
    101107        if len(color) != 7 :     
    102             raise PyKotaToolError, _("Invalid color option %s") % str(color) 
     108            raise PyKotaCommandLineError, _("Invalid color option %s") % str(color) 
    103109        savecolor = color 
    104110         
     
    108114            user = cmd.storage.getUserFromBackend(uname)        # don't use cache 
    109115            if not user.Exists : 
    110                 raise PyKotaToolError, _("User %s doesn't exist in PyKota's database") % uname 
     116                raise PyKotaCommandLineError, _("User %s doesn't exist in PyKota's database") % uname 
    111117            if user.LimitBy == "quota" :     
    112118                printers = cmd.storage.getMatchingPrinters("*") 
     
    177183    except KeyboardInterrupt :         
    178184        sys.stderr.write("\nInterrupted with Ctrl+C !\n") 
     185    except PyKotaCommandLineError, msg :     
     186        sys.stderr.write("%s : %s\n" % (sys.argv[0], msg)) 
    179187    except SystemExit :         
    180188        pass