tool.py: new MMGenToolCmd class

This commit is contained in:
The MMGen Project 2019-02-17 20:00:08 +00:00
commit 7b1b235a80
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
4 changed files with 618 additions and 608 deletions

View file

@ -144,18 +144,16 @@ Type '{pn} help <command> for help on a particular command
cmd_args = opts.init(opts_data,add_opts=['hidden_incog_input_params','in_fmt','use_old_ed25519'])
if len(cmd_args) < 1: opts.usage()
Command = cmd_args.pop(0).capitalize()
cmd = cmd_args.pop(0)
import mmgen.tool as tool
tc = tool.MMGenToolCmd()
if Command == 'Help' and not cmd_args: tool.usage(None)
if Command not in tool.cmd_data:
die(1,"'{}': no such command".format(Command.lower()))
args,kwargs = tool.process_args(Command,cmd_args)
ret = tool.__dict__[Command](*args,**kwargs)
if cmd == 'help' and not cmd_args:
tool._usage(exit_val=0)
if cmd not in dir(tc):
die(1,"'{}': no such command".format(cmd))
args,kwargs = tool._process_args(cmd,cmd_args)
ret = getattr(tc,cmd)(*args,**kwargs)
sys.exit((1,0)[ret in (None,True)]) # some commands die, some return False on failure

View file

@ -25,7 +25,6 @@ from binascii import hexlify,unhexlify
from mmgen.common import *
from mmgen.obj import *
from mmgen.filename import *
from mmgen.crypto import *
pnm = g.proj_name
@ -80,6 +79,7 @@ class SeedSource(MMGenObject):
me.ss_in = ss
me.op = ('conv','pwchg_new')[bool(passchg)]
elif fn or opt.hidden_incog_input_params:
from mmgen.filename import Filename
if fn:
f = Filename(fn)
else:
@ -1026,12 +1026,13 @@ harder to find, you're advised to choose a much larger file size than this.
if fsize >= min_fsize: break
msg('File size must be an integer no less than {}'.format(min_fsize))
from mmgen.tool import Rand2file # threaded routine
Rand2file(fn,str(fsize))
from mmgen.tool import MMGenToolCmd
MMGenToolCmd().rand2file(fn,str(fsize)) # threaded routine TODO: check safe
check_offset = False
else:
die(1,'Exiting at user request')
from mmgen.filename import Filename
f = Filename(fn,ftype=type(self),write=True)
dmsg('{} data len {}, offset {}'.format(capfirst(self.desc),d.target_data_len,d.hincog_offset))

File diff suppressed because it is too large Load diff

View file

@ -3786,9 +3786,9 @@ class MMGenTestSuite(object):
def ethdev_token_transfer_ops(self,name,op,amt=1000):
MMGenExpect(name,'',msg_only=True)
sid = cfgs['8']['seed_id']
from mmgen.tool import Gen_addr
from mmgen.tool import MMGenToolCmd
usr_mmaddrs = ['{}:E:{}'.format(sid,i) for i in (11,21)]
usr_addrs = [Gen_addr(addr,dfl_words,return_result=True) for addr in usr_mmaddrs]
usr_addrs = [MMGenToolCmd().gen_addr(addr,dfl_words,return_result=True) for addr in usr_mmaddrs]
self.ethdev_rpc_init()
from mmgen.altcoins.eth.contract import Token