cfg_main.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!/usr/bin/env python3
  2. import os
  3. from mmgen.cfg import Config
  4. from mmgen.util import msg
  5. opts_data = {
  6. 'sets': [
  7. ('no_license', True, 'grokify', True),
  8. ('autosign', True, 'foobleize', True)
  9. ],
  10. 'text': {
  11. 'desc': 'Cfg file test',
  12. 'usage':'[args] [opts]',
  13. 'options': """
  14. -a, --autosign Turn on autosigning
  15. -F, --foobleize Foobleize the input
  16. -G, --grokify Grokify the output
  17. """},
  18. }
  19. cfg = Config(opts_data=opts_data)
  20. cmd_args = cfg._args
  21. op, args = (cmd_args[0], cmd_args[1:]) if cmd_args else (None, None)
  22. from mmgen.cfgfile import mmgen_cfg_file
  23. cf_usr = mmgen_cfg_file(cfg, 'usr')
  24. cf_sys = mmgen_cfg_file(cfg, 'sys')
  25. cf_sample = mmgen_cfg_file(cfg, 'sample')
  26. msg(f'Usr cfg file: {os.path.relpath(cf_usr.fn)}')
  27. msg(f'Sys cfg file: {os.path.relpath(cf_sys.fn)}')
  28. msg(f'Sample cfg file: {os.path.relpath(cf_sample.fn)}')
  29. match op:
  30. case 'print_cfg':
  31. for name in args:
  32. msg('{} {}'.format(name+':', getattr(cfg, name)))
  33. case 'parse_test':
  34. ps = cf_sample.get_lines()
  35. msg(f'parsed chunks: {len(ps)}')
  36. pu = cf_usr.get_lines()
  37. msg('usr cfg: {}'.format(' '.join(f'{i.name}={i.value}' for i in pu)))
  38. case 'coin_specific_vars':
  39. for varname in args:
  40. msg('{}.{}.{}: {}'.format(
  41. cfg._proto.coin.lower(),
  42. type(cfg._proto).__name__,
  43. varname,
  44. getattr(cfg._proto, varname)
  45. ))
  46. case 'autoset_opts':
  47. assert cfg.rpc_backend == 'aiohttp', "cfg.rpc_backend != 'aiohttp'"
  48. case 'autoset_opts_cmdline':
  49. assert cfg.rpc_backend == 'curl', "cfg.rpc_backend != 'curl'"
  50. case 'mnemonic_entry_modes':
  51. from mmgen.mn_entry import mn_entry
  52. msg('mnemonic_entry_modes: {}\nmmgen: {}\nbip39: {}'.format(
  53. cfg.mnemonic_entry_modes,
  54. mn_entry(cfg, 'mmgen').usr_dfl_entry_mode,
  55. mn_entry(cfg, 'bip39').usr_dfl_entry_mode))