Remap command before calling Click

This commit is contained in:
Ivan Kravets
2020-02-12 13:47:42 +02:00
parent edc2d10574
commit 0bc872eafd
3 changed files with 10 additions and 21 deletions

View File

@ -91,12 +91,21 @@ def configure():
click.secho = lambda *args, **kwargs: _safe_echo(1, *args, **kwargs)
def remap_command_arguments(argv):
if len(argv) > 1 and argv[1] == "init":
return argv[:1] + ["project"] + argv[1:]
return argv
def main(argv=None):
exit_code = 0
prev_sys_argv = sys.argv[:]
if argv:
assert isinstance(argv, list)
sys.argv = argv
else:
sys.argv = remap_command_arguments(sys.argv)
try:
configure()
cli() # pylint: disable=no-value-for-parameter

View File

@ -63,18 +63,5 @@ class PlatformioCLI(click.MultiCommand):
mod_path = "platformio.commands.%s.command" % cmd_name
mod = __import__(mod_path, None, None, ["cli"])
except ImportError:
try:
return self._handle_obsolate_command(cmd_name)
except AttributeError:
pass
raise click.UsageError('No such command "%s"' % cmd_name, ctx)
return mod.cli
@staticmethod
def _handle_obsolate_command(name):
# pylint: disable=import-outside-toplevel
if name == "init":
from platformio.commands.project import project_init
return project_init
raise AttributeError()

View File

@ -142,14 +142,7 @@ class MeasurementProtocol(TelemetryBase):
return
cmd_path = args[:1]
if args[0] in (
"platform",
"platforms",
"serialports",
"device",
"settings",
"account",
):
if args[0] in ("account", "device", "platform", "project", "settings",):
cmd_path = args[:2]
if args[0] == "lib" and len(args) > 1:
lib_subcmds = (