Files
firestorm/build-env/sync-to-windows.sh
T
55b9bfc521 Add sync-to-windows.sh: rsync script for Linux→Windows build machine
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) <noreply@anthropic.com>
Co-authored-by: GitHub Copilot <copilot@github.com>
2026-07-19 15:40:24 -05:00

92 lines
2.8 KiB
Bash
Executable File

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