Use zip_cmd() and unzip_cmd() in update_node.py as well.
diff --git a/scripts/update_node.py b/scripts/update_node.py
index b16d3e5..39eddc4 100755
--- a/scripts/update_node.py
+++ b/scripts/update_node.py
@@ -15,6 +15,7 @@
 import subprocess
 import os
 import shutil
+from zip import unzip_cmd, zip_cmd
 
 version = '18.20.3'
 base = 'https://nodejs.org/dist/latest-v18.x/'
@@ -37,13 +38,13 @@
     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)
 
     upload_url = upload_base + filename
diff --git a/scripts/update_python.py b/scripts/update_python.py
index a5848ea..55c6318 100755
--- a/scripts/update_python.py
+++ b/scripts/update_python.py
@@ -30,6 +30,7 @@
 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'
@@ -42,22 +43,6 @@
 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']