diff --git a/HISTORY.rst b/HISTORY.rst index 89f91044..a9c95e12 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -16,8 +16,7 @@ PlatformIO Core 5 - New unified Package Management CLI (``pio pkg``): * `pio pkg outdated `__ - check for project outdated packages - - - Run command from a PlatformIO package with a new `pio exec `__ (`issue #4163 `_) + * `pio pkg exec `_ - run command from package tool (`issue #4163 `_) * Improved PIO Remote setup on credit-card sized computers (Raspberry Pi, BeagleBon, etc) (`issue #3865 `_) diff --git a/docs b/docs index b2112cd3..3a572b1b 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit b2112cd3a4da349371f4a9ac19f5b324a28d4b28 +Subproject commit 3a572b1bc344ef69bed64cb7c15fc6fb276fcc5a diff --git a/platformio/commands/pkg.py b/platformio/commands/pkg.py index cdde9cd3..caac35ac 100644 --- a/platformio/commands/pkg.py +++ b/platformio/commands/pkg.py @@ -14,6 +14,7 @@ import click +from platformio.package.commands.exec import package_exec_cmd from platformio.package.commands.outdated import package_outdated_cmd from platformio.package.commands.pack import package_pack_cmd from platformio.package.commands.publish import package_publish_cmd @@ -23,6 +24,7 @@ from platformio.package.commands.unpublish import package_unpublish_cmd @click.group( "pkg", commands=[ + package_exec_cmd, package_outdated_cmd, package_pack_cmd, package_publish_cmd, diff --git a/platformio/commands/exec.py b/platformio/package/commands/exec.py similarity index 93% rename from platformio/commands/exec.py rename to platformio/package/commands/exec.py index b637970f..06b6167c 100644 --- a/platformio/commands/exec.py +++ b/platformio/package/commands/exec.py @@ -20,13 +20,14 @@ import click from platformio.compat import IS_MACOS, IS_WINDOWS from platformio.exception import UserSideException from platformio.package.manager.tool import ToolPackageManager +from platformio.proc import get_pythonexe_path -@click.command("exec", short_help="Run command from package") +@click.command("exec", short_help="Run command from package tool") @click.option("-p", "--package", metavar="[@]") @click.option("-c", "--call", metavar=" [args...]") @click.argument("args", nargs=-1, type=click.UNPROCESSED) -def cli(package, call, args): +def package_exec_cmd(package, call, args): if not call and not args: raise click.BadArgumentUsage("Please provide command name") pkg = None @@ -47,8 +48,9 @@ def cli(package, call, args): "Using %s package" % click.style("%s@%s" % (pkg.metadata.name, pkg.metadata.version), fg="green") ) - inject_pkg_to_environ(pkg) + inject_pkg_to_environ(pkg) + os.environ["PIO_PYTHON_EXE"] = get_pythonexe_path() try: subprocess.run( # pylint: disable=subprocess-run-check call or args, shell=call is not None, env=os.environ