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 -c icnC "/Volumes/OpenRA/.VolumeIcon.icns"
|
||||||
SetFile -a C "/Volumes/OpenRA"
|
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
|
chmod -Rf go-w /Volumes/OpenRA
|
||||||
sync
|
sync
|
||||||
sync
|
sync
|
||||||
|
|||||||
Reference in New Issue
Block a user