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}
|
managers = {cls.group: cls() for cls in all if cls.group + '_command' in defaults}
|
||||||
serv = managers[group]
|
serv = managers[group]
|
||||||
arglist = arglist + [''] # add dummy argument
|
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'
|
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
|
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:
|
if instance is None and len(serv.info) == 1:
|
||||||
|
5
base.py
5
base.py
@ -83,6 +83,7 @@ class ServiceManager:
|
|||||||
pkg = ''
|
pkg = ''
|
||||||
revcmd = {}
|
revcmd = {}
|
||||||
USAGE = None
|
USAGE = None
|
||||||
|
main_instrument = basename(expanduser('~'))
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.env = {}
|
self.env = {}
|
||||||
@ -136,7 +137,7 @@ class ServiceManager:
|
|||||||
for ins in parser.sections():
|
for ins in parser.sections():
|
||||||
section = dict(parser[ins])
|
section = dict(parser[ins])
|
||||||
if ins == 'MAIN':
|
if ins == 'MAIN':
|
||||||
ins = basename(expanduser('~'))
|
ins = self.main_instrument
|
||||||
command = section.get('%s_command' % self.group)
|
command = section.get('%s_command' % self.group)
|
||||||
self.revcmd[command] = self.group
|
self.revcmd[command] = self.group
|
||||||
nr = section.get(self.group)
|
nr = section.get(self.group)
|
||||||
@ -192,7 +193,7 @@ class ServiceManager:
|
|||||||
match = cmdpat.match(cmd)
|
match = cmdpat.match(cmd)
|
||||||
if match:
|
if match:
|
||||||
gdict = match.groupdict()
|
gdict = match.groupdict()
|
||||||
ins = gdict['ins']
|
ins = gdict.get('ins', self.main_instrument)
|
||||||
serv = gdict.get('serv', '')
|
serv = gdict.get('serv', '')
|
||||||
if cfginfo is not None and 'cfg' in gdict:
|
if cfginfo is not None and 'cfg' in gdict:
|
||||||
cfginfo[ins, serv] = gdict['cfg']
|
cfginfo[ins, serv] = gdict['cfg']
|
||||||
|
Loading…
x
Reference in New Issue
Block a user