Skip to content

Commit 6ca5207

Browse files
authored
ensure pio-home gets installed (#21)
1 parent 2f6daa7 commit 6ca5207

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

platformio/home/cli.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
from platformio.compat import IS_WINDOWS
2222
from platformio.home.run import run_server
23+
from platformio.package.manager.core import get_core_package_dir
2324
from platformio.project.config import ProjectConfig
2425

2526

@@ -53,11 +54,13 @@
5354
def cli(port, host, no_open, shutdown_timeout, session_id):
5455
# hook for `platformio-node-helpers`
5556
if host == "__do_not_start__":
56-
# download all dependent packages
57-
os.path.join(
58-
ProjectConfig.get_instance().get("platformio","packages_dir"),
59-
"contrib-piohome"
60-
)
57+
# Ensure contrib-piohome package is installed
58+
try:
59+
get_core_package_dir("contrib-piohome")
60+
except Exception as exc: # pylint: disable=broad-except
61+
click.secho(
62+
"Warning! Could not install contrib-piohome: %s" % exc, fg="yellow"
63+
)
6164
return
6265

6366
# Ensure PIO Home mimetypes are known

platformio/home/run.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
from platformio.home.rpc.handlers.project import ProjectRPC
3737
from platformio.home.rpc.handlers.registry import RegistryRPC
3838
from platformio.home.rpc.server import WebSocketJSONRPCServerFactory
39+
from platformio.package.manager.core import get_core_package_dir
3940
from platformio.project.config import ProjectConfig
4041
from platformio.proc import force_exit
4142

@@ -62,10 +63,12 @@ async def protected_page(_):
6263

6364

6465
def run_server(host, port, no_open, shutdown_timeout, home_url):
65-
packages_dir = ProjectConfig.get_instance().get("platformio", "packages_dir")
66-
contrib_dir = os.path.join(packages_dir, "contrib-piohome")
66+
# Ensure contrib-piohome is installed before starting the server
67+
contrib_dir = get_core_package_dir("contrib-piohome")
6768
if not os.path.isdir(contrib_dir):
68-
raise PlatformioException("Invalid path to PIO Home Contrib")
69+
raise PlatformioException(
70+
"Invalid path to PIO Home Contrib: %s" % contrib_dir
71+
)
6972

7073
ws_rpc_factory = WebSocketJSONRPCServerFactory(shutdown_timeout)
7174
ws_rpc_factory.add_object_handler(AccountRPC(), namespace="account")

0 commit comments

Comments
 (0)