source: nagslang/options.py @ 401:f7ee43c0e5c9

Last change on this file since 401:f7ee43c0e5c9 was 337:004e3dd38336, checked in by Neil Muller <drnlmuller@…>, 7 years ago

Re-enable no-sound option

File size: 1.1 KB
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 all sound, including music')
31
32    parser.add_option('--no-music',
33                      dest='music', action='store_false', default=True,
34                      help='Disable music (but not sound)')
35
36    if options.debug:
37        parser.add_option('--area', help='Initial area')
38
39    opts, _ = parser.parse_args(args)
40
41    for k in DEFAULTS:
42        if getattr(opts, k, None) is not None:
43            options[k] = getattr(opts, k)
Note: See TracBrowser for help on using the repository browser.