| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #!/bin/bash
- # LinuxGSM compress_unreal_maps.sh module
- # Author: Daniel Gibbs
- # Contributors: https://linuxgsm.com/contrib
- # Website: https://linuxgsm.com
- # Description: Compresses unreal and unreal2 resources.
- commandname="MAP-COMPRESSOR"
- commandaction="Compressing Maps"
- moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
- fn_firstcommand_set
- check.sh
- fn_print_header
- echo -e "Will compress all maps in:"
- echo -e ""
- pwd
- echo -e ""
- echo -e "Compressed maps saved to:"
- echo -e ""
- echo -e "${compressedmapsdir}"
- echo -e ""
- totalseconds=3
- for seconds in {3..1}; do
- fn_print_warn "map compression starting in: ${totalseconds}"
- totalseconds=$((totalseconds - 1))
- fn_sleep_time_1
- if [ "${seconds}" == "0" ]; then
- break
- fi
- done
- fn_print_nl
- mkdir -pv "${compressedmapsdir}" > /dev/null 2>&1
- # List of extensions to compress
- exts=(ut2 kfm rom u ucl upl int utx uax ukx usx unr umx umod uzx)
- # Remove old compressed files using find
- for ext in "${exts[@]}"; do
- mapfile -t oldfiles < <(find "${serverfiles}" -name "*.${ext}.uz2" -type f)
- if [ ${#oldfiles[@]} -gt 0 ]; then
- echo -e "found ${#oldfiles[@]} old compressed file(s) to remove for extension: ${ext}"
- fi
- for file in "${oldfiles[@]}"; do
- if rm -f "$file"; then
- echo -en "removing file [ ${italic}$(basename "$file")${default} ]\c"
- fn_print_ok_eol_nl
- else
- echo -en "removing file [ ${italic}$(basename "$file")${default} ]\c"
- fn_print_fail_eol_nl
- fi
- done
- done
- cd "${systemdir}" || exit
- # Find and compress files, then move .uz2 to compressedmapsdir
- for ext in "${exts[@]}"; do
- # Collect all files with the current extension into an array
- mapfile -t files < <(find "${serverfiles}" -name "*.${ext}" -type f)
- for file in "${files[@]}"; do
- echo -en "compressing file [ ${italic}$(basename "$file") -> $(basename "$file").uz2${default} ]\c"
- if ! ./ucc-bin compress "${file}" --nohomedir > /dev/null 2>&1; then
- fn_print_fail_eol_nl
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fi
- if ! mv -f "${file}.uz2" "${compressedmapsdir}" > /dev/null 2>&1; then
- echo -en "moving compressed file [ ${italic}$(basename "$file").uz2 -> ${compressedmapsdir}/$(basename "$file").uz2${default} ]\c"
- fn_print_fail_eol_nl
- core_exit.sh
- fi
- done
- done
- fn_print_ok_nl "Compression complete: All compressed files moved to: ${compressedmapsdir}"
- core_exit.sh
|