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]
|
env = self.env[ins]
|
||||||
return env.get('%s_ROOT' % gr, ''), env
|
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)
|
ins_list = self.wildcard(ins)
|
||||||
if ins_list is not None:
|
if ins_list is not None:
|
||||||
return ins_list
|
return ins_list
|
||||||
@ -326,6 +326,8 @@ class ServiceManager:
|
|||||||
for service_i in services:
|
for service_i in services:
|
||||||
port = service_ports[service_i]
|
port = service_ports[service_i]
|
||||||
cmd = self.commands[ins] % dict(ins=ins, serv=service_i, port=port, cfg=cfg, pkg=self.pkg)
|
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:
|
if '%(cfg)s' in self.commands[ins] and not cfg:
|
||||||
cmd = self.stopped[ins].get(service_i)
|
cmd = self.stopped[ins].get(service_i)
|
||||||
if not cmd:
|
if not cmd:
|
||||||
@ -394,7 +396,7 @@ class ServiceManager:
|
|||||||
return ins_list
|
return ins_list
|
||||||
self.do_start(ins, service, cfg, True, logger=logger)
|
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"""
|
"""for tests: run and wait"""
|
||||||
if self.wildcard(ins) is not None:
|
if self.wildcard(ins) is not None:
|
||||||
raise UsageError('no wildcards allowed with %s run' % self.group)
|
raise UsageError('no wildcards allowed with %s run' % self.group)
|
||||||
@ -403,7 +405,7 @@ class ServiceManager:
|
|||||||
service, = self.services
|
service, = self.services
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise UsageError('need service to start (one of %s)' % ', '.join(self.services))
|
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):
|
def do_list(self, ins=None, *args):
|
||||||
"""info about running services"""
|
"""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)
|
env_update['PYTHONPATH'] = os.environ['PYTHONPATH'] = ':'.join(pypathlist)
|
||||||
return start_dir, dict(env, **env_update)
|
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:
|
if self.wildcard(ins) is not None:
|
||||||
raise UsageError('no wildcards allowed with %s start' % self.group)
|
raise UsageError('no wildcards allowed with %s start' % self.group)
|
||||||
if cfg and not service and len(self.services) != 1:
|
if cfg and not service and len(self.services) != 1:
|
||||||
raise UsageError('need service to start (one of %s)' % ', '.join(self.services))
|
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):
|
def do_restart(self, ins, service=None, cfg=None, logger=None):
|
||||||
ins_list = super().do_restart(ins, service, cfg, logger)
|
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')
|
print(f'{gap} ! {round(ambiguous)} ambiguous mappings sea -> frappy')
|
||||||
|
|
||||||
def treat_args(self, argdict, unknown=(), extra=()):
|
def treat_args(self, argdict, unknown=(), extra=()):
|
||||||
if len(unknown) == 1:
|
cfg = None
|
||||||
cfg = unknown[0]
|
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':
|
if cfg == 'develop':
|
||||||
argdict['service'] = cfg
|
argdict['service'] = cfg
|
||||||
return super().treat_args(argdict, (), ())
|
return super().treat_args(argdict, (), extra)
|
||||||
if (',' in cfg or cfg.endswith('.cfg') or
|
if (',' in cfg or cfg.endswith('.cfg') or
|
||||||
self.is_cfg(argdict.get('ins'), argdict.get('service'), cfg)):
|
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)
|
return super().treat_args(argdict, unknown, extra)
|
||||||
|
|
||||||
def check_cfg_file(self, ins, service, cfg, needsea=False):
|
def check_cfg_file(self, ins, service, cfg, needsea=False):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user