allow options to the commands
especially -v for frappy
This commit is contained in:
parent
d8bb4999dc
commit
0b099bab28
8
base.py
8
base.py
@ -286,7 +286,7 @@ class ServiceManager:
|
||||
env = self.env[ins]
|
||||
return env.get('%s_ROOT' % gr, ''), env
|
||||
|
||||
def do_start(self, ins, service=None, cfg='', restart=False, wait=False, logger=None):
|
||||
def do_start(self, ins, service=None, cfg='', restart=False, wait=False, logger=None, opts=''):
|
||||
ins_list = self.wildcard(ins)
|
||||
if ins_list is not None:
|
||||
return ins_list
|
||||
@ -326,6 +326,8 @@ class ServiceManager:
|
||||
for service_i in services:
|
||||
port = service_ports[service_i]
|
||||
cmd = self.commands[ins] % dict(ins=ins, serv=service_i, port=port, cfg=cfg, pkg=self.pkg)
|
||||
if opts:
|
||||
cmd = f'{cmd} {opts}'
|
||||
if '%(cfg)s' in self.commands[ins] and not cfg:
|
||||
cmd = self.stopped[ins].get(service_i)
|
||||
if not cmd:
|
||||
@ -394,7 +396,7 @@ class ServiceManager:
|
||||
return ins_list
|
||||
self.do_start(ins, service, cfg, True, logger=logger)
|
||||
|
||||
def do_run(self, ins, service=None, cfg=None):
|
||||
def do_run(self, ins, service=None, cfg=None, opts=''):
|
||||
"""for tests: run and wait"""
|
||||
if self.wildcard(ins) is not None:
|
||||
raise UsageError('no wildcards allowed with %s run' % self.group)
|
||||
@ -403,7 +405,7 @@ class ServiceManager:
|
||||
service, = self.services
|
||||
except ValueError:
|
||||
raise UsageError('need service to start (one of %s)' % ', '.join(self.services))
|
||||
self.do_start(ins, service, cfg, wait=True)
|
||||
self.do_start(ins, service, cfg, wait=True, opts=opts)
|
||||
|
||||
def do_list(self, ins=None, *args):
|
||||
"""info about running services"""
|
||||
|
20
frappyman.py
20
frappyman.py
@ -229,12 +229,12 @@ class FrappyManager(ServiceManager):
|
||||
env_update['PYTHONPATH'] = os.environ['PYTHONPATH'] = ':'.join(pypathlist)
|
||||
return start_dir, dict(env, **env_update)
|
||||
|
||||
def do_start(self, ins, service=None, cfg='', restart=False, wait=False, logger=None):
|
||||
def do_start(self, ins, service=None, cfg='', restart=False, wait=False, logger=None, opts=''):
|
||||
if self.wildcard(ins) is not None:
|
||||
raise UsageError('no wildcards allowed with %s start' % self.group)
|
||||
if cfg and not service and len(self.services) != 1:
|
||||
raise UsageError('need service to start (one of %s)' % ', '.join(self.services))
|
||||
super().do_start(ins, service, cfg, restart, wait, logger)
|
||||
super().do_start(ins, service, cfg, restart, wait, logger, opts=opts)
|
||||
|
||||
def do_restart(self, ins, service=None, cfg=None, logger=None):
|
||||
ins_list = super().do_restart(ins, service, cfg, logger)
|
||||
@ -383,14 +383,22 @@ class FrappyManager(ServiceManager):
|
||||
print(f'{gap} ! {round(ambiguous)} ambiguous mappings sea -> frappy')
|
||||
|
||||
def treat_args(self, argdict, unknown=(), extra=()):
|
||||
if len(unknown) == 1:
|
||||
cfg = unknown[0]
|
||||
cfg = None
|
||||
extra = list(extra)
|
||||
for arg in unknown:
|
||||
if arg.startswith('-'): # this is an option
|
||||
extra.append(arg)
|
||||
elif cfg is None:
|
||||
cfg = arg
|
||||
else:
|
||||
cfg = ''
|
||||
if cfg:
|
||||
if cfg == 'develop':
|
||||
argdict['service'] = cfg
|
||||
return super().treat_args(argdict, (), ())
|
||||
return super().treat_args(argdict, (), extra)
|
||||
if (',' in cfg or cfg.endswith('.cfg') or
|
||||
self.is_cfg(argdict.get('ins'), argdict.get('service'), cfg)):
|
||||
return super().treat_args(argdict, (), unknown)
|
||||
return super().treat_args(argdict, (), [cfg] + extra)
|
||||
return super().treat_args(argdict, unknown, extra)
|
||||
|
||||
def check_cfg_file(self, ins, service, cfg, needsea=False):
|
||||
|
Loading…
x
Reference in New Issue
Block a user