#!/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.common import *

cmd_args = opts.init({'text': { 'desc': '', 'usage':'', 'options':'-e, --echo-passphrase foo' }})

if cmd_args[0] == 'passphrase':
	from mmgen.ui import get_words_from_user
	pw = get_words_from_user(
		('Enter passphrase: ','Enter passphrase (echoed): ')[bool(opt.echo_passphrase)] )
	msg('Entered: {}'.format(' '.join(pw)))
elif cmd_args[0] in ('get_char','line_input'):
	from mmgen.term import get_char
	from mmgen.ui import line_input
	from ast import literal_eval
	func_args = literal_eval(cmd_args[1])
	Msg(f'\n  term: {get_char.__self__.__name__}')
	Msg(f'  g.hold_protect_disable: {g.hold_protect_disable}')
	Msg('  {name}( {args} )'.format(
		name = cmd_args[0],
		args = ', '.join(f'{k}={v!r}' for k,v in func_args.items())
		))
	ret = locals()[cmd_args[0]](**func_args)
	Msg('  ==> {!r}'.format(ret))