#!/usr/bin/env bash # run-comparison.sh - regenerate every report in MW4COMPARE/reports/. # # ./run-comparison.sh [V4H_ROOT] [OURS_ROOT] # # Defaults: # V4H_ROOT = /home/rich/Repositories/FS_Build_V4H (deployed 3rd-party build) # OURS_ROOT = /Gameleap/mw4 (our dev/source tree) # # Takes a few minutes; the decoded props/textures comparisons dominate. set -euo pipefail HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" T="$HERE/tools" R="$HERE/reports" V4H="${1:-/home/rich/Repositories/FS_Build_V4H}" OURS="${2:-$(cd "$HERE/.." && pwd)/Gameleap/mw4}" mkdir -p "$R" echo "V4H = $V4H" echo "OURS = $OURS" echo "[1/8] package manifests" python3 "$T/mw4index.py" "$V4H/resource" > "$R/manifest-v4h.tsv" 2> "$R/manifest-v4h.err" python3 "$T/mw4index.py" "$OURS/Resource" > "$R/manifest-ours.tsv" 2> "$R/manifest-ours.err" echo "[2/8] package + entry name diff" python3 "$T/diffindex.py" "$R/manifest-v4h.tsv" "$R/manifest-ours.tsv" V4H OURS \ > "$R/packages-entrydiff.txt" echo "[3/8] core.mw4 decoded diff" python3 "$T/pkgcmp.py" "$V4H/resource/core.mw4" "$OURS/Resource/core.mw4" \ > "$R/core-decoded-diff.txt" echo "[4/8] props.mw4 decoded diff (~1 min)" python3 "$T/pkgcmp.py" "$V4H/resource/props.mw4" "$OURS/Resource/props.mw4" \ > "$R/props-decoded-diff.txt" echo "[5/8] textures.mw4 decoded diff (~2 min)" python3 "$T/pkgcmp.py" "$V4H/resource/textures.mw4" "$OURS/Resource/textures.mw4" \ > "$R/textures-decoded-diff.txt" echo "[6/8] per-mission and per-map decoded diffs" : > "$R/missions-decoded-diff.txt" for f in "$V4H"/resource/Missions/*.mw4; do b="$(basename "$f")"; o="$OURS/Resource/Missions/$b" [ -f "$o" ] || continue { echo "### $b"; python3 "$T/pkgcmp.py" "$f" "$o"; } >> "$R/missions-decoded-diff.txt" done : > "$R/maps-decoded-diff.txt" for f in "$V4H"/resource/maps/*.mw4; do b="$(basename "$f")"; o="$OURS/Resource/maps/$b" [ -f "$o" ] || continue { echo "### $b"; python3 "$T/pkgcmp.py" "$f" "$o"; } >> "$R/maps-decoded-diff.txt" done echo "[7/8] loose file trees" python3 "$T/treediff.py" "$V4H/hsh" "$OURS/hsh" V4H OURS > "$R/hsh-diff.txt" python3 "$T/treediff.py" "$V4H/hshoriginal" "$OURS/hsh" V4HORIG OURS > "$R/hshoriginal-diff.txt" python3 "$T/treediff.py" "$V4H/resource" "$OURS/Resource" V4H OURS > "$R/resource-files-diff.txt" # V4H ships only 14 loose Content files against our ~46k-file source tree, so the # "-OURS" side is pure noise here; keep only the header, additions and conflicts. python3 "$T/treediff.py" "$V4H/content" "$OURS/Content" V4H OURS \ | grep -v '^-OURS' > "$R/content-diff.txt" echo "[8/8] variant inventory" python3 "$T/variants-report.py" "$V4H/resource/Variants" "$R/manifest-v4h.tsv" "$R/manifest-ours.tsv" \ > "$R/variants-inventory.txt" echo "done -> $R"