From 55b9bfc5218878a36e34c134e364ae30fb422941 Mon Sep 17 00:00:00 2001 From: RT Date: Sun, 19 Jul 2026 15:40:24 -0500 Subject: [PATCH] =?UTF-8?q?Add=20sync-to-windows.sh:=20rsync=20script=20fo?= =?UTF-8?q?r=20Linux=E2=86=92Windows=20build=20machine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Syncs all source, content, toolchain, and assets needed to build and test the game on the Windows machine at /vwe/firestorm. Excludes generated build outputs (bin dirs, *.mw4, *.dep), .git/LFS, _UNUSED, and the MW4 deploy dir. Co-authored-by: Claude Sonnet 4.6 (Anthropic) Co-authored-by: GitHub Copilot --- build-env/sync-to-windows.sh | 91 ++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100755 build-env/sync-to-windows.sh diff --git a/build-env/sync-to-windows.sh b/build-env/sync-to-windows.sh new file mode 100755 index 00000000..65d60895 --- /dev/null +++ b/build-env/sync-to-windows.sh @@ -0,0 +1,91 @@ +#!/usr/bin/env bash +# sync-to-windows.sh +# Syncs the FireStorm repo to the Windows build/test machine mounted at /vwe/firestorm. +# +# Usage: +# ./sync-to-windows.sh # full sync +# ./sync-to-windows.sh --dry-run # preview only, no changes written +# +# Each section is a separate rsync so large unchanged trees (textures, audio, +# movies) can be commented out when you know they haven't changed. + +SRC=~/Repositories/firestorm +DST=/vwe/firestorm + +RSYNC_OPTS="-av --delete" +if [[ "$1" == "--dry-run" ]]; then + RSYNC_OPTS="$RSYNC_OPTS --dry-run" + echo "[DRY RUN] No files will be written." +fi + +set -e + +echo +echo "=== [1/8] Root files ===" +rsync $RSYNC_OPTS --exclude='*/' \ + "$SRC/" "$DST/" + +echo +echo "=== [2/8] Source code (Gameleap/code) — ~831 MB, skipping build output dirs ===" +rsync $RSYNC_OPTS \ + --exclude='rel.bin/' \ + --exclude='dbg.bin/' \ + --exclude='pro.bin/' \ + --exclude='arm.bin/' \ + --exclude='ice.bin/' \ + "$SRC/Gameleap/code/" "$DST/Gameleap/code/" + +echo +echo "=== [3/8] Game data root + hsh + Assets + Stats (Gameleap/mw4 minus Content and Resource) — ~200 MB ===" +rsync $RSYNC_OPTS \ + --exclude='Content/' \ + --exclude='Resource/' \ + "$SRC/Gameleap/mw4/" "$DST/Gameleap/mw4/" + +echo +echo "=== [3b/8] Resource: .nfo + .tga (source) only — skip generated .mw4 and .dep ===" +rsync $RSYNC_OPTS \ + --exclude='*.mw4' \ + --exclude='*.dep' \ + "$SRC/Gameleap/mw4/Resource/" "$DST/Gameleap/mw4/Resource/" + +echo +echo "=== [4/8] Content: scripts, tables, mechs, missions, build manifests — ~350 MB ===" +rsync $RSYNC_OPTS \ + --exclude='textures/' \ + --exclude='Audio/' \ + --exclude='movies/' \ + "$SRC/Gameleap/mw4/Content/" "$DST/Gameleap/mw4/Content/" + +echo +echo "=== [5/8] Content/textures — 3.1 GB (comment out if unchanged) ===" +rsync $RSYNC_OPTS \ + "$SRC/Gameleap/mw4/Content/textures/" "$DST/Gameleap/mw4/Content/textures/" + +echo +echo "=== [6/8] Content/Audio — 351 MB (comment out if unchanged) ===" +rsync $RSYNC_OPTS \ + "$SRC/Gameleap/mw4/Content/Audio/" "$DST/Gameleap/mw4/Content/Audio/" + +echo +echo "=== [7/8] Content/movies — 311 MB (comment out if unchanged) ===" +rsync $RSYNC_OPTS \ + "$SRC/Gameleap/mw4/Content/movies/" "$DST/Gameleap/mw4/Content/movies/" + +echo +echo "=== [8/8] Build environment, design data, HUD art ===" +rsync $RSYNC_OPTS \ + "$SRC/build-env/" "$DST/build-env/" +rsync $RSYNC_OPTS \ + "$SRC/BTFrstrm/" "$DST/BTFrstrm/" +rsync $RSYNC_OPTS \ + "$SRC/Finished HUDS from J&J/" "$DST/Finished HUDS from J&J/" + +echo +echo "=== Sync complete ===" +echo "Skipped (git/LFS): .git/" +echo "Skipped (archived): _UNUSED/" +echo "Skipped (deploy out): MW4/" +echo "Skipped (build out): Gameleap/code/{rel,dbg,pro,arm,ice}.bin/" +echo "Skipped (generated): Gameleap/mw4/Resource/*.mw4 *.dep" +echo "Skipped (dev backup): Gameleap/mw4/Content/ShellScriptsDev/"