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.
This commit is contained in:
juj
2024-10-18 13:34:04 -07:00
committed by GitHub
parent eda31dc972
commit 8a99ae8698
3 changed files with 22 additions and 18 deletions

View File

@@ -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:

View File

@@ -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():

18
scripts/zip.py Normal file
View File

@@ -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']