From a2a34dafdec5c10c233fa65cd52e5519e6d1b1f3 Mon Sep 17 00:00:00 2001 From: Unrud Date: Tue, 14 Jun 2022 15:57:34 +0200 Subject: [PATCH] MacOS buildpackage: Fix deduplication The variable `${MOD}` was not enclosed in quotes, but the value contained a space. This caused the argument to be split into two parts. Using **find** isn't necessary due to globbing. --- packaging/macos/buildpackage.sh | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/packaging/macos/buildpackage.sh b/packaging/macos/buildpackage.sh index da5e0dee6e..01e3d0ceb4 100755 --- a/packaging/macos/buildpackage.sh +++ b/packaging/macos/buildpackage.sh @@ -185,21 +185,18 @@ build_platform() { # Replace duplicate .NET runtime files with hard links to improve compression if [ "${PLATFORM}" != "mono" ]; then - OIFS="$IFS" - IFS=$'\n' for MOD in "Red Alert" "Tiberian Dawn"; do - for f in $(find /Volumes/OpenRA/OpenRA\ -\ ${MOD}.app/Contents/MacOS/*); do + for f in "/Volumes/OpenRA/OpenRA - ${MOD}.app/Contents/MacOS"/*; do g="/Volumes/OpenRA/OpenRA - Dune 2000.app/Contents/MacOS/"$(basename "${f}") hashf=$(shasum "${f}" | awk '{ print $1 }') || : hashg=$(shasum "${g}" | awk '{ print $1 }') || : - if [ "${hashf}" = "${hashg}" ]; then + if [ -n "${hashf}" ] && [ "${hashf}" = "${hashg}" ]; then echo "Deduplicating ${f}" rm "${f}" ln "${g}" "${f}" fi done done - IFS="$OIFS" fi chmod -Rf go-w /Volumes/OpenRA