Completed
Push — master ( 18d750...3bad9e )
by Andrii
11:56
created

heppy.Args   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 23
Duplicated Lines 0 %
Metric Value
dl 0
loc 23
rs 10
wmc 6
1
import re
2
import sys
3
4
class Args(dict):
5
    def __init__(self):
6
        if len(sys.argv)<3:
7
            print('usage: {0} path command -o1=v1 ..'.format(sys.argv[0]))
8
            exit(1)
9
10
        args = sys.argv
11
        self['zcmd']    = args.pop(0)
12
        self['path']    = args.pop(0)
13
        self['command'] = args.pop(0)
14
        self['zdir'], self['zbin'] = self['zcmd'].rsplit('/', 1)
15
16
        for raw in args:
17
            m = re.match(r'^-(\S+)=(.*)$', raw)
18
            if m:
19
                name = m.group(1)
20
                if name.find('.')>0:
21
                    f, s = name.split('.', 1)
22
                    if not f in self:
23
                        self[f] = {}
24
                    self[f][s] = m.group(2)
25
                else:
26
                    self[name] = m.group(2)
27
28