main ins no longer needed in command
- MAIN is automatically replaced by the basename of the home directory - when %(ins) is omitted in *_command, it is also replaced by this + add help subcommand
This commit is contained in:
parent
702db45a76
commit
9900af0e3f
@ -58,6 +58,9 @@ def run(group, arglist):
|
||||
managers = {cls.group: cls() for cls in all if cls.group + '_command' in defaults}
|
||||
serv = managers[group]
|
||||
arglist = arglist + [''] # add dummy argument
|
||||
if arglist[0].endswith('help'):
|
||||
serv.usage()
|
||||
return
|
||||
action = arglist.pop(0) if hasattr(serv, 'do_' + arglist[0]) else 'gui'
|
||||
instance = arglist.pop(0) if arglist[0] and arglist[0] not in serv.services else None
|
||||
if instance is None and len(serv.info) == 1:
|
||||
|
5
base.py
5
base.py
@ -83,6 +83,7 @@ class ServiceManager:
|
||||
pkg = ''
|
||||
revcmd = {}
|
||||
USAGE = None
|
||||
main_instrument = basename(expanduser('~'))
|
||||
|
||||
def __init__(self):
|
||||
self.env = {}
|
||||
@ -136,7 +137,7 @@ class ServiceManager:
|
||||
for ins in parser.sections():
|
||||
section = dict(parser[ins])
|
||||
if ins == 'MAIN':
|
||||
ins = basename(expanduser('~'))
|
||||
ins = self.main_instrument
|
||||
command = section.get('%s_command' % self.group)
|
||||
self.revcmd[command] = self.group
|
||||
nr = section.get(self.group)
|
||||
@ -192,7 +193,7 @@ class ServiceManager:
|
||||
match = cmdpat.match(cmd)
|
||||
if match:
|
||||
gdict = match.groupdict()
|
||||
ins = gdict['ins']
|
||||
ins = gdict.get('ins', self.main_instrument)
|
||||
serv = gdict.get('serv', '')
|
||||
if cfginfo is not None and 'cfg' in gdict:
|
||||
cfginfo[ins, serv] = gdict['cfg']
|
||||
|
Loading…
x
Reference in New Issue
Block a user