Prep script: zip LocalMods, autogen config, commit; CI: unzip on deploy

This commit is contained in:
2026-06-09 12:51:24 +03:00
parent b5db2a06f3
commit e65989af40
7147 changed files with 154 additions and 21412 deletions

91
prep Normal file
View File

@@ -0,0 +1,91 @@
#!/usr/bin/env python3
"""Prepare local mods, zip them, generate config, and commit."""
import os
import subprocess
import sys
BASE = os.path.dirname(os.path.abspath(__file__))
SCRIPTS = os.path.join(BASE, "scripts")
PREPARE_LOCAL = os.path.join(BASE, "prepare_local")
AUTOGEN = os.path.join(SCRIPTS, "autogen_config.py")
LOCALMODS_DIR = os.path.join(BASE, "LocalMods")
ZIP_PATH = os.path.join(BASE, "LocalMods.zip")
def log_ok(msg):
print(f"\033[92m✓\033[0m {msg}")
def log_info(msg):
print(f"• {msg}")
def log_err(msg):
print(f"\033[91m✗\033[0m {msg}", file=sys.stderr)
def run(cmd, cwd=None):
result = subprocess.run(cmd, cwd=cwd, capture_output=True, text=True)
if result.returncode != 0:
print(result.stdout)
print(result.stderr, file=sys.stderr)
sys.exit(result.returncode)
return result.stdout.strip()
def zip_localmods():
import zipfile
log_info(f"Zipping {LOCALMODS_DIR} → {ZIP_PATH}")
if os.path.exists(ZIP_PATH):
os.remove(ZIP_PATH)
count = 0
with zipfile.ZipFile(ZIP_PATH, "w", zipfile.ZIP_DEFLATED) as zf:
for root, dirs, files in os.walk(LOCALMODS_DIR):
for fn in files:
full = os.path.join(root, fn)
arcname = os.path.relpath(full, BASE)
zf.write(full, arcname)
count += 1
size = os.path.getsize(ZIP_PATH)
log_ok(f"Zipped {count} files ({size / 1024:.1f} KB)")
def main():
msg = " ".join(sys.argv[1:]) if len(sys.argv) > 1 else "Update LocalMods"
print()
print("╔════════════════════════════════════╗")
print("║ Prep: mods → zip → commit ║")
print("╚════════════════════════════════════╝")
print()
# 1. Run prepare_local
log_info("Step 1: Copy mods from workshop...")
run([sys.executable, PREPARE_LOCAL])
log_ok("LocalMods ready")
print()
# 2. Zip LocalMods
log_info("Step 2: Zipping LocalMods/...")
zip_localmods()
print()
# 3. Run autogen_config
log_info("Step 3: Generating config_player.xml...")
run([sys.executable, AUTOGEN])
log_ok("config_player.xml generated")
print()
# 4. Git add and commit (no push)
log_info("Step 4: Committing...")
run(["git", "add", "-A"], cwd=BASE)
run(["git", "commit", "-m", msg], cwd=BASE)
log_ok(f"Committed: {msg}")
print()
log_ok("Done. Push manually when ready.")
if __name__ == "__main__":
main()