From 7f64546097e02279e1aed02e8d14b40ae72bbf8b Mon Sep 17 00:00:00 2001 From: Chris McCormick Date: Mon, 28 Apr 2025 16:38:45 +0800 Subject: [PATCH] If node binary is broken, reinstall. --- piku.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/piku.py b/piku.py index 585d9ff..cba7c7c 100755 --- a/piku.py +++ b/piku.py @@ -23,7 +23,7 @@ from shlex import split as shsplit from shutil import copyfile, rmtree, which from socket import socket, AF_INET, SOCK_STREAM from stat import S_IRUSR, S_IWUSR, S_IXUSR -from subprocess import call, check_output, Popen, STDOUT +from subprocess import call, check_output, Popen, STDOUT, CalledProcessError from sys import argv, stdin, stdout, stderr, version_info, exit, path as sys_path from tempfile import NamedTemporaryFile from time import sleep @@ -651,8 +651,11 @@ def deploy_node(app, deltas={}): version = env.get("NODE_VERSION") node_binary = join(virtualenv_path, "bin", "node") - installed = check_output("{} -v".format(node_binary), cwd=join(APP_ROOT, app), env=env, shell=True).decode("utf8").rstrip( - "\n") if exists(node_binary) else "" + try: + installed = check_output("{} -v".format(node_binary), cwd=join(APP_ROOT, app), env=env, shell=True).decode("utf8").rstrip( + "\n") if exists(node_binary) else "" + except CalledProcessError: + installed = "" if version and check_requirements(['nodeenv']): if not installed.endswith(version):