From 3ccf57500b341db251ab53d511222ba84ebdb32b Mon Sep 17 00:00:00 2001 From: Daniel Gibbs Date: Fri, 27 Jun 2025 17:06:39 +0100 Subject: [PATCH] fix(compress_unreal2_maps): streamline file removal and compression process --- lgsm/modules/compress_unreal2_maps.sh | 37 +++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/lgsm/modules/compress_unreal2_maps.sh b/lgsm/modules/compress_unreal2_maps.sh index 58824cbc7..e1624a526 100644 --- a/lgsm/modules/compress_unreal2_maps.sh +++ b/lgsm/modules/compress_unreal2_maps.sh @@ -25,11 +25,38 @@ if ! fn_prompt_yn "Start compression?" Y; then core_exit.sh fi mkdir -pv "${compressedmapsdir}" > /dev/null 2>&1 -rm -rfv "${serverfiles:?}/Maps/"*.ut2.uz2 -cd "${systemdir}" || exit -for map in "${serverfiles}/Maps/"*; do - ./ucc-bin compress "${map}" --nohomedir + +# Remove old compressed files using find +echo -e "Removing old compressed .uz2 files..." +find "${serverfiles}" \( -name "*.ut2.uz2" -o -name "*.rom.uz2" -o -name "*.utx.uz2" -o -name "*.uax.uz2" -o -name "*.usx.uz2" -o -name "*.ukx.uz2" -o -name "*.u.uz2" -o -name "*.ogg.uz2" -o -name "*.int.uz2" \) -type f -exec rm -fv {} \; + +echo -e "Searching for Unreal Engine files to compress..." +echo -e "Look in game config file for maps" + +# mapext=$(awk -F= '/^[[:space:]]*MapExt[[:space:]]*=/ {gsub(/^[ \t"]+|[ \t"]+$/, "", $2); print $2; exit}' "${servercfgfullpath}") +# echo "Detected map extension: $mapext" + +# List of extensions to compress (excluding .ogg) +exts="ut2 kfm rom u ucl upl ini int utx uax ukx usx" + +# Remove old compressed files for these extensions +for ext in $exts; do + find "${serverfiles}" -name "*.${ext}.uz2" -type f -exec rm -fv {} \; done -mv -fv "${serverfiles}/Maps/"*.ut2.uz2 "${compressedmapsdir}" + +cd "${systemdir}" || exit + +# Find and compress files, then move .uz2 to compressedmapsdir +find "${serverfiles}" \( "$(for ext in $exts; do echo -name "*.${ext}" -o; done | sed 's/ -o$//')" \) -type f \ + -exec sh -c ' + compressedmapsdir="$1" + file="$2" + printf "Compressing: %s\n" "$file" + ./ucc-bin compress "$file" --nohomedir && \ + printf "Moving: %s -> %s\n" "$file.uz2" "$compressedmapsdir" && \ + mv -fv "$file.uz2" "$compressedmapsdir" + ' _ "${compressedmapsdir}" {} \; + +echo -e "Compression complete. All .uz2 files moved to: ${compressedmapsdir}" core_exit.sh