# HG changeset patch # User Stefano Rivera # Date 1378037862 -7200 # Node ID b410c7153d525ffb3235dd6a8f816ef1718c8c52 # Parent 2318792b83c6d76b2536461cef8f2f1442443154 Option parsing diff -r 2318792b83c6 -r b410c7153d52 nagslang/constants.py --- a/nagslang/constants.py Sun Sep 01 14:08:42 2013 +0200 +++ b/nagslang/constants.py Sun Sep 01 14:17:42 2013 +0200 @@ -1,1 +1,6 @@ SCREEN = (800, 600) + +DEFAULTS = dict( + debug=False, + sound=True, +) diff -r 2318792b83c6 -r b410c7153d52 nagslang/options.py --- a/nagslang/options.py Sun Sep 01 14:08:42 2013 +0200 +++ b/nagslang/options.py Sun Sep 01 14:17:42 2013 +0200 @@ -1,3 +1,32 @@ +import optparse +import os + +from nagslang.constants import DEFAULTS + + +class AttrDict(dict): + '''A dict with attribute access''' + def __getattr__(self, attr): + return self[attr] + + +options = AttrDict() + + def parse_args(args): - #TODO - return + options.update(DEFAULTS) + + options.debug = 'DEBUG' in os.environ + + parser = optparse.OptionParser() + parser.add_option('--no-sound', + dest='sound', action='store_false', default=True, + help='Disable sound') + if options.debug: + parser.add_option('--area', help='Initial area') + + opts, _ = parser.parse_args(args) + + for k in DEFAULTS: + if getattr(opts, k, None) is not None: + options[k] = getattr(opts, k)