Replace duplicate runtime files with hardlinks to reduce dmg size.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user