Skip to content

Commit 114be1e

Browse files
committed
fix: rebuild-jar.py Windows support
1 parent 92e1899 commit 114be1e

1 file changed

Lines changed: 28 additions & 11 deletions

File tree

‎scripts/rebuild-jar.py‎

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,20 @@
1919
import sys
2020
import os
2121
import glob
22+
import platform
23+
import tempfile
24+
from os.path import expanduser
2225

2326
SKETCHBOOK_JAR_DEST = os.path.expanduser("~/sketchbook/modes/CppMode/mode/CppMode.jar")
24-
TMP_DIR = "/tmp/_cpp"
27+
TMP_DIR = tempfile.gettempdir() + os.sep + "_cpp"
2528

26-
def run(cmd, cwd=None):
29+
def run(cmd, cwd=None, stopOnFailure=True):
2730
print(f"$ {' '.join(cmd)}")
2831
result = subprocess.run(cmd, cwd=cwd)
29-
if result.returncode != 0:
30-
print(f"FAILED (exit code {result.returncode}): {' '.join(cmd)}")
31-
sys.exit(result.returncode)
32+
if stopOnFailure:
33+
if result.returncode != 0:
34+
print(f"FAILED (exit code {result.returncode}): {' '.join(cmd)}")
35+
sys.exit(result.returncode)
3236

3337
def get_processing4_dir():
3438
env_dir = os.environ.get("PROCESSING4_DIR")
@@ -55,7 +59,11 @@ def main():
5559
glob.glob(os.path.join(libs_dir, "java-*.jar"))
5660
)
5761
java_jar = _candidates[0] if _candidates else os.path.join(libs_dir, "java.jar")
58-
gradlew = os.path.join(processing4_dir, "gradlew")
62+
63+
if platform.system() == "Windows":
64+
gradlew = os.path.join(processing4_dir, "gradlew.bat")
65+
else:
66+
gradlew = os.path.join(processing4_dir, "gradlew")
5967

6068
if not os.path.exists(cppbuild_java):
6169
print(f"ERROR: expected CppBuild.java not found at {cppbuild_java}")
@@ -79,8 +87,16 @@ def main():
7987
print(f"ERROR: expected jar not found at {java_jar}")
8088
sys.exit(1)
8189

82-
run(["rm", "-rf", TMP_DIR])
83-
run(["mkdir", TMP_DIR])
90+
if platform.system() == "Windows":
91+
run(["cmd.exe", "/C", "rmdir", "/S", "/Q", TMP_DIR], stopOnFailure=False)
92+
else:
93+
run(["rm", "-rf", TMP_DIR])
94+
95+
if platform.system() == "Windows":
96+
run(["cmd.exe", "/C", "mkdir", TMP_DIR])
97+
else:
98+
run(["mkdir", TMP_DIR])
99+
84100
run(["jar", "xf", java_jar], cwd=TMP_DIR)
85101
os.makedirs(os.path.dirname(SKETCHBOOK_JAR_DEST), exist_ok=True)
86102
run(["jar", "cf", SKETCHBOOK_JAR_DEST, "processing/mode/cpp/"], cwd=TMP_DIR)
@@ -94,10 +110,11 @@ def main():
94110

95111
# Sync to Processing bundled mode dirs so IDE picks up changes immediately
96112
import shutil, pathlib
97-
jar = pathlib.Path("/home/pep/sketchbook/modes/CppMode/mode/CppMode.jar")
113+
home = expanduser("~")
114+
jar = pathlib.Path(f"{home}/sketchbook/modes/CppMode/mode/CppMode.jar")
98115
for dest in [
99-
"/home/pep/Projects/processing4/app/build/resources-bundled/common/modes/CppMode/mode/CppMode.jar",
100-
"/home/pep/Projects/processing4/app/build/compose/tmp/prepareAppResources/modes/CppMode/mode/CppMode.jar",
116+
f"{home}/Projects/processing4/app/build/resources-bundled/common/modes/CppMode/mode/CppMode.jar",
117+
f"{home}/Projects/processing4/app/build/compose/tmp/prepareAppResources/modes/CppMode/mode/CppMode.jar",
101118
]:
102119
pathlib.Path(dest).parent.mkdir(parents=True, exist_ok=True)
103120
shutil.copy2(jar, dest)

0 commit comments

Comments
 (0)