bug fixes
This commit is contained in:
parent
81eb635c27
commit
144551070d
1 changed files with 21 additions and 1 deletions
|
|
@ -28,14 +28,34 @@ if os.path.exists(JAR_HOST_PATH):
|
||||||
|
|
||||||
prepare_tmp()
|
prepare_tmp()
|
||||||
|
|
||||||
|
# Extract original JAR
|
||||||
with zipfile.ZipFile(JAR_HOST_PATH, "r") as z:
|
with zipfile.ZipFile(JAR_HOST_PATH, "r") as z:
|
||||||
z.extractall(TMP_HOST_DIR)
|
z.extractall(TMP_HOST_DIR)
|
||||||
|
|
||||||
|
# Copy local .java source files into TMP_HOST_DIR/src based on their package declaration
|
||||||
|
src_base = os.path.join(TMP_HOST_DIR, "src")
|
||||||
|
os.makedirs(src_base, exist_ok=True)
|
||||||
|
|
||||||
|
for root, _, files in os.walk("."):
|
||||||
|
for file in files:
|
||||||
|
if file.endswith(".java"):
|
||||||
|
filepath = os.path.join(root, file)
|
||||||
|
pkg = ""
|
||||||
|
with open(filepath, "r", encoding="utf-8") as f:
|
||||||
|
for line in f:
|
||||||
|
line = line.strip()
|
||||||
|
if line.startswith("package ") and line.endswith(";"):
|
||||||
|
pkg = line[8:-1].strip()
|
||||||
|
break
|
||||||
|
target_dir = os.path.join(src_base, *pkg.split(".")) if pkg else src_base
|
||||||
|
os.makedirs(target_dir, exist_ok=True)
|
||||||
|
shutil.copyfile(filepath, os.path.join(target_dir, file))
|
||||||
|
|
||||||
run_cmd(f"docker exec -u 0 -i {CONTAINER_NAME} apt-get update >/dev/null 2>&1")
|
run_cmd(f"docker exec -u 0 -i {CONTAINER_NAME} apt-get update >/dev/null 2>&1")
|
||||||
run_cmd(f"docker exec -u 0 -i {CONTAINER_NAME} apt-get install -y openjdk-17-jdk-headless >/dev/null 2>&1")
|
run_cmd(f"docker exec -u 0 -i {CONTAINER_NAME} apt-get install -y openjdk-17-jdk-headless >/dev/null 2>&1")
|
||||||
run_cmd(f"docker exec -u 0 -i {CONTAINER_NAME} chmod -R 777 {TMP_CONTAINER_DIR}")
|
run_cmd(f"docker exec -u 0 -i {CONTAINER_NAME} chmod -R 777 {TMP_CONTAINER_DIR}")
|
||||||
|
|
||||||
compile_cmd = f'docker exec -i {CONTAINER_NAME} bash -c \'CP=$(find /data/libraries /data/mods -name "*.jar" | tr "\\n" ":"); javac -cp "$CP" -d {TMP_CONTAINER_DIR} {TMP_CONTAINER_DIR}/src/com/rtxbb/lts_auth/LtsAuthMod.java {TMP_CONTAINER_DIR}/src/com/rtxbb/lts_auth/command/LoginCommand.java\''
|
compile_cmd = f'docker exec -i {CONTAINER_NAME} bash -c \'CP=$(find /data/libraries /data/mods -name "*.jar" | tr "\\n" ":"); javac -cp "$CP:{TMP_CONTAINER_DIR}" -d {TMP_CONTAINER_DIR} {TMP_CONTAINER_DIR}/src/com/rtxbb/lts_auth/LtsAuthMod.java {TMP_CONTAINER_DIR}/src/com/rtxbb/lts_auth/command/LoginCommand.java\''
|
||||||
if run_cmd(compile_cmd):
|
if run_cmd(compile_cmd):
|
||||||
print("Compilation successful! Re-zipping mod JAR...")
|
print("Compilation successful! Re-zipping mod JAR...")
|
||||||
run_cmd(f"docker exec -u 0 -i {CONTAINER_NAME} chmod -R 777 {TMP_CONTAINER_DIR}")
|
run_cmd(f"docker exec -u 0 -i {CONTAINER_NAME} chmod -R 777 {TMP_CONTAINER_DIR}")
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue