Fix broken "init" command

This commit is contained in:
Ivan Kravets
2020-02-12 16:34:38 +02:00
parent d0a6861369
commit b41262a20e
2 changed files with 13 additions and 9 deletions

View File

@ -91,21 +91,12 @@ 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,5 +63,18 @@ 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()