cfg_main.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/usr/bin/env python3
  2. import os
  3. from mmgen.cfg import Config
  4. from mmgen.util import msg
  5. cfg = Config(process_opts=True)
  6. cmd_args = cfg._args
  7. op, args = (cmd_args[0], cmd_args[1:]) if cmd_args else (None, None)
  8. from mmgen.cfgfile import mmgen_cfg_file
  9. cf_usr = mmgen_cfg_file(cfg, 'usr')
  10. cf_sys = mmgen_cfg_file(cfg, 'sys')
  11. cf_sample = mmgen_cfg_file(cfg, 'sample')
  12. msg(f'Usr cfg file: {os.path.relpath(cf_usr.fn)}')
  13. msg(f'Sys cfg file: {os.path.relpath(cf_sys.fn)}')
  14. msg(f'Sample cfg file: {os.path.relpath(cf_sample.fn)}')
  15. if op:
  16. if op == 'parse_test':
  17. ps = cf_sample.get_lines()
  18. msg(f'parsed chunks: {len(ps)}')
  19. pu = cf_usr.get_lines()
  20. msg('usr cfg: {}'.format(' '.join(f'{i.name}={i.value}' for i in pu)))
  21. elif op == 'coin_specific_vars':
  22. for varname in args:
  23. msg('{}.{}: {}'.format(
  24. type(cfg._proto).__name__,
  25. varname,
  26. getattr(cfg._proto, varname)
  27. ))
  28. elif op == 'autoset_opts':
  29. assert cfg.rpc_backend == 'aiohttp', "cfg.rpc_backend != 'aiohttp'"
  30. elif op == 'autoset_opts_cmdline':
  31. assert cfg.rpc_backend == 'curl', "cfg.rpc_backend != 'curl'"
  32. elif op == 'mnemonic_entry_modes':
  33. from mmgen.mn_entry import mn_entry
  34. msg('mnemonic_entry_modes: {}\nmmgen: {}\nbip39: {}'.format(
  35. cfg.mnemonic_entry_modes,
  36. mn_entry(cfg, 'mmgen').usr_dfl_entry_mode,
  37. mn_entry(cfg, 'bip39').usr_dfl_entry_mode))