#!/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/"