From e9aeb9d8cd221354932fd69aa20c732dbe578ae2 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Fri, 3 Oct 2025 10:34:04 +0000 Subject: [PATCH] cmdtest.list_cmds(): cleanup, move to CmdGroupMgr --- test/cmdtest.py | 36 ++++------------------------- test/cmdtest_d/include/group_mgr.py | 19 +++++++++++++++ 2 files changed, 24 insertions(+), 31 deletions(-) diff --git a/test/cmdtest.py b/test/cmdtest.py index 443ddecd..feb90adb 100755 --- a/test/cmdtest.py +++ b/test/cmdtest.py @@ -239,34 +239,6 @@ if cfg.skipping_deps: from test.cmdtest_d.include.cfg import cfgs -def list_cmds(): - - def gen_output(): - - from test.cmdtest_d.include.group_mgr import CmdGroupMgr - gm = CmdGroupMgr(cfg) - cw, d = 0, [] - - yield green('AVAILABLE COMMANDS:') - - for gname in gm.cmd_groups: - tg = gm.gm_init_group(cfg, None, gname, None, None) - gdesc = tg.__doc__.strip() if tg.__doc__ else type(tg).__name__ - d.append((gname, gdesc, gm.cmd_list, gm.dpy_data)) - cw = max(max(len(k) for k in gm.dpy_data), cw) - - for gname, gdesc, cmd_list, dpy_data in d: - yield '\n'+green(f'{gname!r} - {gdesc}:') - for cmd in cmd_list: - data = dpy_data[cmd] - yield ' {:{w}} - {}'.format( - cmd, - (data if isinstance(data, str) else data[1]), - w = cw) - - from mmgen.ui import do_pager - do_pager('\n'.join(gen_output())) - def create_tmp_dirs(shm_dir): if sys.platform in ('win32', 'darwin'): for cfg in sorted(cfgs): @@ -297,13 +269,15 @@ if __name__ == '__main__': if not cfg.skipping_deps: # do this before list cmds exit, so we stay in sync with shm_dir create_tmp_dirs(shm_dir) + if cfg.list_cmds: + from test.cmdtest_d.include.group_mgr import CmdGroupMgr + CmdGroupMgr(cfg).list_cmds() + sys.exit(0) + if cfg.list_cmd_groups: from test.cmdtest_d.include.group_mgr import CmdGroupMgr CmdGroupMgr(cfg).list_cmd_groups() sys.exit(0) - elif cfg.list_cmds: - list_cmds() - sys.exit(0) if cfg.pause: set_restore_term_at_exit() diff --git a/test/cmdtest_d/include/group_mgr.py b/test/cmdtest_d/include/group_mgr.py index d2fc662e..4e1b78f5 100755 --- a/test/cmdtest_d/include/group_mgr.py +++ b/test/cmdtest_d/include/group_mgr.py @@ -154,6 +154,25 @@ class CmdGroupMgr: def get_cls_by_gname(self, gname): return self.load_mod(gname, self.cmd_groups[gname].params.get('modname')) + def list_cmds(self): + + def gen_output(): + yield green('AVAILABLE COMMANDS:') + for gname in self.cmd_groups: + tg = self.gm_init_group(self.cfg, None, gname, None, None) + gdesc = tg.__doc__.strip() if tg.__doc__ else type(tg).__name__ + yield '\n' + green(f'{gname!r} - {gdesc}:') + name_w = max(len(cmd) for cmd in self.cmd_list) + for cmd in self.cmd_list: + data = self.dpy_data[cmd] + yield ' {a:{w}} - {b}'.format( + a = cmd, + b = data if isinstance(data, str) else data.desc, + w = name_w) + + from mmgen.ui import do_pager + do_pager('\n'.join(gen_output())) + def list_cmd_groups(self): if self.cfg.list_current_cmd_groups: