mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 20:13:32 +01:00
jw.build.App: Unroll run_from_cmd_module()
run_from_cmd_module() is a helper function used to allow command selection alongside the legacy and now obsolete method. Unrolling it is a step towards adding proper argparse subparsers, so do that. Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
75820eee7c
commit
a863bb9747
1 changed files with 10 additions and 13 deletions
|
|
@ -405,18 +405,6 @@ class App(object):
|
|||
unvisited.remove(module)
|
||||
temp.remove(module)
|
||||
|
||||
def run_from_cmd_module(self, name: str, args_) -> None:
|
||||
import importlib
|
||||
name = name.replace('-', '_')
|
||||
cc_name = 'Cmd' + ''.join(x.capitalize() for x in name.lower().split("_"))
|
||||
module = importlib.import_module('jw.build.cmds.' + cc_name)
|
||||
cmd = getattr(module, cc_name)()
|
||||
cmd.app = self
|
||||
parser = argparse.ArgumentParser(description=name)
|
||||
cmd.add_arguments(parser)
|
||||
args = parser.parse_args(args_)
|
||||
return cmd.run(args)
|
||||
|
||||
# -------------------------------------------------------------------- here we go
|
||||
def run(self):
|
||||
|
||||
|
|
@ -461,4 +449,13 @@ class App(object):
|
|||
if not self.top_name:
|
||||
self.top_name = re.sub('-[0-9.-]*$', '', os.path.basename(os.path.realpath(self.topdir)))
|
||||
|
||||
return self.run_from_cmd_module(args.cmd, sys.argv[(len(self.global_args) + 1)::])
|
||||
import importlib
|
||||
cmd_name = args.cmd.replace('-', '_')
|
||||
cc_cmd_name = 'Cmd' + ''.join(x.capitalize() for x in cmd_name.lower().split("_"))
|
||||
module = importlib.import_module('jw.build.cmds.' + cc_cmd_name)
|
||||
cmd = getattr(module, cc_cmd_name)()
|
||||
cmd.app = self
|
||||
subparser = argparse.ArgumentParser(description=cmd_name)
|
||||
cmd.add_arguments(subparser)
|
||||
args = subparser.parse_args(sys.argv[(len(self.global_args) + 1)::])
|
||||
return cmd.run(args)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue