42 lines
1.2 KiB
Python
Executable file
42 lines
1.2 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
# this script is used both for interactive and automated testing
|
|
|
|
import sys, os
|
|
os.chdir(os.path.dirname(os.path.dirname(os.path.abspath(os.path.dirname(sys.argv[0])))))
|
|
sys.path[0] = os.curdir
|
|
|
|
from mmgen.cfg import Config
|
|
from mmgen.util import msg
|
|
|
|
opts_data = {
|
|
'text': {
|
|
'desc': '',
|
|
'usage':'',
|
|
'options':'-e, --echo-passphrase foo',
|
|
}
|
|
}
|
|
|
|
cfg = Config(opts_data=opts_data)
|
|
|
|
match cfg._args:
|
|
case ['passphrase']:
|
|
from mmgen.ui import get_words_from_user
|
|
pw = get_words_from_user(
|
|
cfg,
|
|
('Enter passphrase: ', 'Enter passphrase (echoed): ')[bool(cfg.echo_passphrase)] )
|
|
msg('Entered: {}'.format(' '.join(pw)))
|
|
case 'get_char' | 'line_input' as cmd, args:
|
|
from mmgen.term import get_char
|
|
from mmgen.ui import line_input
|
|
from ast import literal_eval
|
|
func_args = literal_eval(args)
|
|
msg(f'\n term: {get_char.__self__.__name__}')
|
|
msg(f' cfg.hold_protect_disable: {cfg.hold_protect_disable}')
|
|
if cmd == 'line_input':
|
|
func_args.update({'cfg':cfg})
|
|
msg(' Calling {name}({args})'.format(
|
|
name = cmd,
|
|
args = ', '.join(f'{k}={v!r}' for k, v in func_args.items())
|
|
))
|
|
ret = locals()[cmd](**func_args)
|
|
msg(f' ==> {ret!r}')
|