Browse Source

cmdtest.list_cmds(): cleanup, move to CmdGroupMgr

The MMGen Project 2 months ago
parent
commit
e9aeb9d8cd
2 changed files with 24 additions and 31 deletions
  1. 5 31
      test/cmdtest.py
  2. 19 0
      test/cmdtest_d/include/group_mgr.py

+ 5 - 31
test/cmdtest.py

@@ -239,34 +239,6 @@ if cfg.skipping_deps:
 
 
 from test.cmdtest_d.include.cfg import cfgs
 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):
 def create_tmp_dirs(shm_dir):
 	if sys.platform in ('win32', 'darwin'):
 	if sys.platform in ('win32', 'darwin'):
 		for cfg in sorted(cfgs):
 		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
 	if not cfg.skipping_deps: # do this before list cmds exit, so we stay in sync with shm_dir
 		create_tmp_dirs(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:
 	if cfg.list_cmd_groups:
 		from test.cmdtest_d.include.group_mgr import CmdGroupMgr
 		from test.cmdtest_d.include.group_mgr import CmdGroupMgr
 		CmdGroupMgr(cfg).list_cmd_groups()
 		CmdGroupMgr(cfg).list_cmd_groups()
 		sys.exit(0)
 		sys.exit(0)
-	elif cfg.list_cmds:
-		list_cmds()
-		sys.exit(0)
 
 
 	if cfg.pause:
 	if cfg.pause:
 		set_restore_term_at_exit()
 		set_restore_term_at_exit()

+ 19 - 0
test/cmdtest_d/include/group_mgr.py

@@ -154,6 +154,25 @@ class CmdGroupMgr:
 	def get_cls_by_gname(self, gname):
 	def get_cls_by_gname(self, gname):
 		return self.load_mod(gname, self.cmd_groups[gname].params.get('modname'))
 		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):
 	def list_cmd_groups(self):
 
 
 		if self.cfg.list_current_cmd_groups:
 		if self.cfg.list_current_cmd_groups: