64 lines
1.7 KiB
Python
Executable file
64 lines
1.7 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
import os
|
|
|
|
from mmgen.cfg import Config
|
|
from mmgen.util import msg
|
|
|
|
opts_data = {
|
|
'sets': [
|
|
('no_license', True, 'grokify', True),
|
|
('autosign', True, 'foobleize', True)
|
|
],
|
|
'text': {
|
|
'desc': 'Cfg file test',
|
|
'usage':'[args] [opts]',
|
|
'options': """
|
|
-a, --autosign Turn on autosigning
|
|
-F, --foobleize Foobleize the input
|
|
-G, --grokify Grokify the output
|
|
"""},
|
|
}
|
|
|
|
cfg = Config(opts_data=opts_data)
|
|
|
|
cmd_args = cfg._args
|
|
op, args = (cmd_args[0], cmd_args[1:]) if cmd_args else (None, None)
|
|
|
|
from mmgen.cfgfile import mmgen_cfg_file
|
|
|
|
cf_usr = mmgen_cfg_file(cfg, 'usr')
|
|
cf_sys = mmgen_cfg_file(cfg, 'sys')
|
|
cf_sample = mmgen_cfg_file(cfg, 'sample')
|
|
|
|
msg(f'Usr cfg file: {os.path.relpath(cf_usr.fn)}')
|
|
msg(f'Sys cfg file: {os.path.relpath(cf_sys.fn)}')
|
|
msg(f'Sample cfg file: {os.path.relpath(cf_sample.fn)}')
|
|
|
|
match op:
|
|
case 'print_cfg':
|
|
for name in args:
|
|
msg('{} {}'.format(name+':', getattr(cfg, name)))
|
|
case 'parse_test':
|
|
ps = cf_sample.get_lines()
|
|
msg(f'parsed chunks: {len(ps)}')
|
|
pu = cf_usr.get_lines()
|
|
msg('usr cfg: {}'.format(' '.join(f'{i.name}={i.value}' for i in pu)))
|
|
case 'coin_specific_vars':
|
|
for varname in args:
|
|
msg('{}.{}.{}: {}'.format(
|
|
cfg._proto.coin.lower(),
|
|
type(cfg._proto).__name__,
|
|
varname,
|
|
getattr(cfg._proto, varname)
|
|
))
|
|
case 'autoset_opts':
|
|
assert cfg.rpc_backend == 'aiohttp', "cfg.rpc_backend != 'aiohttp'"
|
|
case 'autoset_opts_cmdline':
|
|
assert cfg.rpc_backend == 'curl', "cfg.rpc_backend != 'curl'"
|
|
case 'mnemonic_entry_modes':
|
|
from mmgen.mn_entry import mn_entry
|
|
msg('mnemonic_entry_modes: {}\nmmgen: {}\nbip39: {}'.format(
|
|
cfg.mnemonic_entry_modes,
|
|
mn_entry(cfg, 'mmgen').usr_dfl_entry_mode,
|
|
mn_entry(cfg, 'bip39').usr_dfl_entry_mode))
|