From 8a99ae8698f47e6f287c93918ebc1093660049ae Mon Sep 17 00:00:00 2001 From: juj Date: Fri, 18 Oct 2024 13:34:04 -0700 Subject: [PATCH] Use zip_cmd() and unzip_cmd() in update_node.py as well. (#1471) This way update_node.py can be called on Windows host machines as well. --- scripts/update_node.py | 5 +++-- scripts/update_python.py | 17 +---------------- scripts/zip.py | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 18 deletions(-) create mode 100644 scripts/zip.py diff --git a/scripts/update_node.py b/scripts/update_node.py index 6080900..c14e41d 100755 --- a/scripts/update_node.py +++ b/scripts/update_node.py @@ -16,6 +16,7 @@ import subprocess import sys import os import shutil +from zip import unzip_cmd, zip_cmd version = '18.20.3' base = 'https://nodejs.org/dist/latest-v18.x/' @@ -38,13 +39,13 @@ for suffix in suffixes: urllib.request.urlretrieve(download_url, filename) if '-win-' in suffix: - subprocess.check_call(['unzip', '-q', filename]) + subprocess.check_call(unzip_cmd() + [filename]) dirname = os.path.splitext(os.path.basename(filename))[0] shutil.move(dirname, 'bin') os.mkdir(dirname) shutil.move('bin', dirname) os.remove(filename) - subprocess.check_call(['zip', '-rq', filename, dirname]) + subprocess.check_call(zip_cmd() + [filename, dirname]) shutil.rmtree(dirname) if '--upload' in sys.argv: diff --git a/scripts/update_python.py b/scripts/update_python.py index 6d2c19b..ae889d6 100755 --- a/scripts/update_python.py +++ b/scripts/update_python.py @@ -30,6 +30,7 @@ import shutil import subprocess import sys from subprocess import check_call +from zip import unzip_cmd, zip_cmd version = '3.9.2' major_minor_version = '.'.join(version.split('.')[:2]) # e.g. '3.9.2' -> '3.9' @@ -44,22 +45,6 @@ pywin32_base = 'https://github.com/mhammond/pywin32/releases/download/b%s/' % py upload_base = 'gs://webassembly/emscripten-releases-builds/deps/' -def unzip_cmd(): - # Use 7-Zip if available (https://www.7-zip.org/) - sevenzip = os.path.join(os.getenv('ProgramFiles', ''), '7-Zip', '7z.exe') - if os.path.isfile(sevenzip): - return [sevenzip, 'x'] - # Fall back to 'unzip' tool - return ['unzip', '-q'] - - -def zip_cmd(): - # Use 7-Zip if available (https://www.7-zip.org/) - sevenzip = os.path.join(os.getenv('ProgramFiles', ''), '7-Zip', '7z.exe') - if os.path.isfile(sevenzip): - return [sevenzip, 'a', '-mx9'] - # Fall back to 'zip' tool - return ['zip', '-rq'] def make_python_patch(): diff --git a/scripts/zip.py b/scripts/zip.py new file mode 100644 index 0000000..30bceea --- /dev/null +++ b/scripts/zip.py @@ -0,0 +1,18 @@ +import os + +def unzip_cmd(): + # Use 7-Zip if available (https://www.7-zip.org/) + sevenzip = os.path.join(os.getenv('ProgramFiles', ''), '7-Zip', '7z.exe') + if os.path.isfile(sevenzip): + return [sevenzip, 'x'] + # Fall back to 'unzip' tool + return ['unzip', '-q'] + + +def zip_cmd(): + # Use 7-Zip if available (https://www.7-zip.org/) + sevenzip = os.path.join(os.getenv('ProgramFiles', ''), '7-Zip', '7z.exe') + if os.path.isfile(sevenzip): + return [sevenzip, 'a', '-mx9'] + # Fall back to 'zip' tool + return ['zip', '-rq']