From 02ca6de3ecde24b6e67fe0287e5441b9f4c987f2 Mon Sep 17 00:00:00 2001 From: l_samenv Date: Thu, 4 May 2023 14:57:01 +0200 Subject: [PATCH] make new version of frappy work - frappy instead of secop - python cfg files --- base.py | 6 ++++++ frappyman.py | 35 +++++++++++++++++++++++++---------- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/base.py b/base.py index e909345..62a182e 100644 --- a/base.py +++ b/base.py @@ -438,6 +438,12 @@ class ServiceManager: print('') printTable(('inst', 'service', 'port', 'cfg'), rows, print) + def do_getports(self, ins): + """machine readable list of services with port numbers""" + self.get_info() + procs = self.get_procs().get(ins, {}) + print(' '.join('%s %s' % (k, self.info[ins][k]) for k in procs)) + @staticmethod def extra_info(ins): """provide extra info or None""" diff --git a/frappyman.py b/frappyman.py index fdefec4..ba8c05f 100644 --- a/frappyman.py +++ b/frappyman.py @@ -51,7 +51,7 @@ class FrappyManager(ServiceManager): cfgparser.optionxform = str cfgfile = self.env[ins].get('FRAPPY_CONFIG_FILE') confdir = self.env[ins].get('FRAPPY_CONFDIR') - if cfgfile is not None: + if cfgfile: cfgfile = self.env[ins]['FRAPPY_CONFIG_FILE'].replace('', service) cfgparser.read(cfgfile) try: @@ -122,9 +122,12 @@ class FrappyManager(ServiceManager): print('starting frappy gui %s' % ins) import mlzlog - - from secop.gui.qt import QApplication - from secop.gui.mainwindow import MainWindow + if exists(join(self.env[ins].get('FRAPPY_ROOT'), 'frappy')): + import frappy + else: + import secop as frappy + from frappy.gui.qt import QApplication + from frappy.gui.mainwindow import MainWindow mlzlog.initLogging('gui', 'info') @@ -136,11 +139,21 @@ class FrappyManager(ServiceManager): def do_cli(self, ins='', service='main'): self.check_server(ins, service) - from secop.client.interactive import Client import code - - client = Client('localhost:%d' % self.info[ins][service]) - code.interact(banner='', local={'client': client}) + if exists(join(self.env[ins].get('FRAPPY_ROOT'), 'frappy')): + import frappy + else: + print('secop!') + import secop as frappy + from frappy.client.interactive import Client + namespace = {} + try: + from frappy.client.interactive import watch + namespace['watch'] = watch + except ImportError: + pass + namespace['client'] = Client('localhost:%d' % self.info[ins][service]) + code.interact(banner='', local=namespace) def all_cfg(self, ins, service, by_dir=False): result = {} @@ -150,7 +163,9 @@ class FrappyManager(ServiceManager): for cfgdir in self.config_dirs(ins, service): result.setdefault(cfgdir, {}) cfgs = result[cfgdir] - for cfgfile in glob(join(cfgdir, '*.cfg')): + root = self.env[ins].get('FRAPPY_ROOT') + cfg_pattern ='*_cfg.py' if exists(join(root, 'frappy')) else '*.cfg' + for cfgfile in glob(join(cfgdir, cfg_pattern)): desc = '' try: parser = ConfigParser() @@ -161,7 +176,7 @@ class FrappyManager(ServiceManager): break except Exception: pass - cfg = basename(cfgfile)[:-4] + cfg = basename(cfgfile)[:1-len(cfg_pattern)] if cfg not in all_cfg: all_cfg[cfg] = desc cfgs[cfg] = desc