From be46b4452dcb769dd694eaf89bd6a910040ff5b9 Mon Sep 17 00:00:00 2001 From: Angus Hollands Date: Mon, 2 Sep 2024 16:29:12 +0100 Subject: [PATCH] fix: check platform and don't use exec on win --- packages/mystmd-py/src/mystmd_py/main.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/mystmd-py/src/mystmd_py/main.py b/packages/mystmd-py/src/mystmd_py/main.py index e334dcbaf..0f1388c2c 100644 --- a/packages/mystmd-py/src/mystmd_py/main.py +++ b/packages/mystmd-py/src/mystmd_py/main.py @@ -1,5 +1,6 @@ import os import pathlib +import platform import shutil import subprocess import sys @@ -35,11 +36,18 @@ def main(): "Please update to the latest LTS release, using your preferred package manager\n" "or following instructions here: https://nodejs.org/en/download" ) - os.execve( - node, - [node.name, PATH_TO_BIN_JS, *sys.argv[1:]], - {**os.environ, "MYST_LANG": "PYTHON"}, - ) + + node_args = [PATH_TO_BIN_JS, *sys.argv[1:]] + node_env = {**os.environ, "MYST_LANG": "PYTHON"} + if platform.system() == "Windows": + result = subprocess.run([node, *node_args], env=node_env) + sys.exit(result.returncode) + else: + os.execve( + node, + [node.name, *node_args], + node_env, + ) if __name__ == "__main__":