13
|
1 import optparse
|
|
2 import os
|
|
3
|
|
4 from nagslang.constants import DEFAULTS
|
|
5
|
|
6
|
|
7 class AttrDict(dict):
|
|
8 '''A dict with attribute access'''
|
|
9 def __getattr__(self, attr):
|
|
10 return self[attr]
|
|
11
|
|
12
|
|
13 options = AttrDict()
|
|
14
|
|
15
|
10
|
16 def parse_args(args):
|
14
|
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 '''
|
13
|
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,
|
292
|
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
|
13
|
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)
|