diff --git a/__init__.py b/__init__.py index 607bc8b..983d73e 100644 --- a/__init__.py +++ b/__init__.py @@ -50,10 +50,6 @@ class SewebManager(ServiceManager): all = NicosManager, FrappyManager, SeaManager, SewebManager -ACTION = 1 -INS = 2 -SERVICE = 3 - def run(group, arglist): try: @@ -62,6 +58,9 @@ def run(group, arglist): managers = {cls.group: cls() for cls in all if cls.group + '_command' in defaults} serv = managers[group] args = dict(action='gui', ins=serv.main_ins) + ACTION = 1 + INS = 2 + SERVICE = 2 if serv.main_ins else 3 extra = [] pos = 0 unorder = False @@ -76,7 +75,7 @@ def run(group, arglist): if pos >= SERVICE: unorder = True pos = SERVICE - elif arg in serv.info or arg == 'all' or serv.wildcard(arg) is not None: + elif arg in serv.info or arg == 'all' or serv.wildcard(arg): args['ins'] = arg if pos >= INS: unorder = True diff --git a/frappyman.py b/frappyman.py index c06d8ea..948b938 100644 --- a/frappyman.py +++ b/frappyman.py @@ -38,7 +38,7 @@ class FrappyManager(ServiceManager): frappy start frappy restart [] [] * frappy stop [] * - frappy listcfg [] # list available cfg files + frappy listcfg [ | develop] # list available cfg files is one of main, stick, addons %s @@ -132,9 +132,18 @@ class FrappyManager(ServiceManager): cfgs[cfg] = desc return result if by_dir else all_cfg - def do_listcfg(self, ins='', service='main'): - for cfgdir, cfgs in self.all_cfg(ins, service, by_dir=True).items(): - if cfgs: + def do_listcfg(self, ins='', service=''): + omit = 'develop' + if service: + all_cfg = self.all_cfg(ins, service, by_dir=True) + if service == 'develop': + omit = 'NONE' + else: + all_cfg = {} + for service in self.services: + all_cfg.update(self.all_cfg(ins, service, by_dir=True)) + for cfgdir, cfgs in all_cfg.items(): + if cfgs and not cfgdir.endswith(omit): print('\n--- %s:\n' % cfgdir) keylen = max(len(k) for k in cfgs) for cfg, desc in cfgs.items(): @@ -143,6 +152,10 @@ class FrappyManager(ServiceManager): def treat_args(self, argdict, unknown=(), extra=()): if len(unknown) == 1: cfg = unknown[0] - if ',' in cfg or cfg in self.all_cfg(argdict.get('ins'), argdict.get('service')): + if cfg == 'develop': + argdict['service'] = cfg + return super().treat_args(argdict, (), ()) + if (',' in cfg or cfg.endswith('.cfg') or + cfg in self.all_cfg(argdict.get('ins'), argdict.get('service'))): return super().treat_args(argdict, (), unknown) return super().treat_args(argdict, unknown, extra) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..a4d92cc --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +psutil