Browse Source

cfg: support `usage()` on bad invocation for txcreate

The MMGen Project 3 weeks ago
parent
commit
67e1688aa1
4 changed files with 6 additions and 2 deletions
  1. 1 1
      mmgen/help/__init__.py
  2. 3 0
      mmgen/main_txcreate.py
  3. 1 0
      mmgen/opts.py
  4. 1 1
      test/cmdtest_d/ct_help.py

+ 1 - 1
mmgen/help/__init__.py

@@ -49,7 +49,7 @@ def gen_arg_tuple(cfg, func, text):
 	def help_notes(k, *args, **kwargs):
 		import importlib
 		return getattr(importlib.import_module(
-			f'{cfg._opts.help_pkg}.help_notes').help_notes(proto, cfg), k)(*args, **kwargs)
+			f'{cfg._help_pkg}.help_notes').help_notes(proto, cfg), k)(*args, **kwargs)
 
 	def help_mod(modname):
 		import importlib

+ 3 - 0
mmgen/main_txcreate.py

@@ -101,6 +101,9 @@ opts_data = {
 
 cfg = Config(opts_data=opts_data)
 
+if not cfg.info and len(cfg._args) < {'tx': 1, 'swaptx': 2}[target]:
+	cfg._usage()
+
 async def main():
 
 	if cfg.autosign:

+ 1 - 0
mmgen/opts.py

@@ -279,6 +279,7 @@ class Opts:
 		# Make these available to usage():
 		cfg._usage_data = opts_data['text'].get('usage2') or opts_data['text']['usage']
 		cfg._usage_code = opts_data.get('code', {}).get('usage')
+		cfg._help_pkg = self.help_pkg
 
 		if os.getenv('MMGEN_DEBUG_OPTS'):
 			opt_preproc_debug(po)

+ 1 - 1
test/cmdtest_d/ct_help.py

@@ -50,7 +50,7 @@ class CmdTestHelp(CmdTestBase):
 		return self._usage('walletgen', ['foo'], True, False, 1)
 
 	def usage4(self):
-		return self._usage('tool' if self.coin == 'xmr' else 'addrgen', [], True, True, 1)
+		return self._usage('tool' if self.coin == 'xmr' else 'txcreate', [], True, True, 1)
 
 	def _usage(self, cmd_arg, args, no_passthru_opts, add_coin_opt, exit_val):
 		if cmd := (None if self._gen_skiplist(cmd_arg) else cmd_arg):