source: nagslang/options.py @ 235:831e4f6b3d18

Last change on this file since 235:831e4f6b3d18 was 14:17b233a54651, checked in by Stefano Rivera <stefano@…>, 7 years ago

Docstring

File size: 905 bytes
Line 
1import optparse
2import os
3
4from nagslang.constants import DEFAULTS
5
6
7class AttrDict(dict):
8    '''A dict with attribute access'''
9    def __getattr__(self, attr):
10        return self[attr]
11
12
13options = AttrDict()
14
15
16def parse_args(args):
17    '''
18    Parse arguments and store them in the options dictionary.
19
20    Note: If you add arguments, you need to add an appropriate default to the
21    DEFAULTS dict.
22    '''
23    options.update(DEFAULTS)
24
25    options.debug = 'DEBUG' in os.environ
26
27    parser = optparse.OptionParser()
28    parser.add_option('--no-sound',
29                      dest='sound', action='store_false', default=True,
30                      help='Disable sound')
31    if options.debug:
32        parser.add_option('--area', help='Initial area')
33
34    opts, _ = parser.parse_args(args)
35
36    for k in DEFAULTS:
37        if getattr(opts, k, None) is not None:
38            options[k] = getattr(opts, k)
Note: See TracBrowser for help on using the repository browser.