Replace duplicate runtime files with hardlinks to reduce dmg size.

This commit is contained in:
Paul Chote
2020-12-23 17:45:59 +00:00
committed by abcdefg30
parent 7bedba5837
commit e583165dff

View File

@@ -181,6 +181,25 @@ build_platform() {
SetFile -c icnC "/Volumes/OpenRA/.VolumeIcon.icns"
SetFile -a C "/Volumes/OpenRA"
# Replace duplicate .NET runtime files with hard links to improve compression
if [ "${PLATFORM}" != "compat" ]; 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
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
echo "Deduplicating ${f}"
rm "${f}"
ln "${g}" "${f}"
fi
done
done
IFS="$OIFS"
fi
chmod -Rf go-w /Volumes/OpenRA
sync
sync