This repository has been archived on 2026-05-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
AgrarianGameArchive/Scripts/audit_repo_storage.sh
T

62 lines
1.6 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
repo_root="$(git rev-parse --show-toplevel)"
cd "$repo_root"
echo "Agrarian repository storage audit"
echo "Repository: $repo_root"
echo
echo "Project directory sizes:"
du -sh .git Content Source Config Docs Scripts Data 2>/dev/null || true
if [ "${AGRARIAN_AUDIT_FULL_TREE:-0}" = "1" ]; then
echo
echo "Full working tree size:"
du -sh . 2>/dev/null || true
else
echo
echo "Full working tree size skipped. Set AGRARIAN_AUDIT_FULL_TREE=1 to include generated folders."
fi
echo
echo "Git object database:"
git count-objects -vH
echo
echo "Largest tracked files in HEAD:"
largest_tracked="$(mktemp)"
git ls-tree -r -l HEAD | sort -k4 -nr > "$largest_tracked"
head -n 25 "$largest_tracked" | awk '{ printf "%10s %s\n", $4, $5 }'
rm -f "$largest_tracked"
echo
if git lfs version >/dev/null 2>&1; then
echo "Largest Git LFS objects:"
largest_lfs="$(mktemp)"
git lfs ls-files -s |
sed -E 's/^.*\(([0-9.]+) ([KMGT]?B)\)$/\1\2 &/' |
sort -hr > "$largest_lfs"
head -n 25 "$largest_lfs" | sed -E 's/^[0-9.]+[KMGT]?B //'
rm -f "$largest_lfs"
else
echo "Git LFS is not installed."
fi
echo
echo "Generated/local directories:"
for path in Binaries Intermediate Saved DerivedDataCache .vs Builds; do
if [ -e "$path" ]; then
du -sh "$path" 2>/dev/null || true
fi
done
echo
cat <<'NOTE'
Policy reminder:
- Do not store packaged builds, raw DEM/lidar/GIS datasets, DerivedDataCache, or
generated terrain tile caches in GitHub.
- Use Git for source, scripts, metadata, docs, and curated project assets.
- Use DevBox or future object storage for large artifacts and source data.
NOTE