From f4927fa54a48f3fee818835682e61c16fbff1dbd Mon Sep 17 00:00:00 2001 From: fekt Date: Fri, 28 Oct 2022 01:17:22 -0400 Subject: [PATCH] OSX deployment script and bg --- contrib/macdeploy/SDBackground.png | Bin 0 -> 23924 bytes contrib/macdeploy/sd-macdeploy.command | 136 +++++++++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 contrib/macdeploy/SDBackground.png create mode 100755 contrib/macdeploy/sd-macdeploy.command diff --git a/contrib/macdeploy/SDBackground.png b/contrib/macdeploy/SDBackground.png new file mode 100644 index 0000000000000000000000000000000000000000..e990d50aebadb0e19fff19556330d5c941a4e0e7 GIT binary patch literal 23924 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/dev/null; then + echo "Compressing (UPX) ${APP_EXE}..." + upx -9 "${APP_EXE}" +fi + +# ... perform any other stripping/compressing of libs and executables + +popd + +# figure out how big our DMG needs to be +# assumes our contents are at least 1M! +SIZE=`du -sh "${STAGING_DIR}" | sed 's/\([0-9\.]*\)M\(.*\)/\1/'` +SIZE=`echo "${SIZE} + 1.0" | bc | awk '{print int($1+0.5)}'` + +if [ $? -ne 0 ]; then + echo "Error: Cannot compute size of staging dir" + exit +fi + +# create the temp DMG file +hdiutil create -srcfolder "${STAGING_DIR}" -volname "${VOL_NAME}" -fs HFS+ \ + -fsargs "-c c=64,a=16,e=16" -format UDRW -size ${SIZE}M "${DMG_TMP}" + +echo "Created DMG: ${DMG_TMP}" + +# mount it and save the device +DEVICE=$(hdiutil attach -readwrite -noverify "${DMG_TMP}" | \ + egrep '^/dev/' | sed 1q | awk '{print $1}') + +sleep 2 + +# add a link to the Applications dir +echo "Add link to /Applications" +pushd /Volumes/"${VOL_NAME}" +ln -s /Applications +popd + +# add a background image +mkdir /Volumes/"${VOL_NAME}"/.background +cp "${DMG_BACKGROUND_IMG}" /Volumes/"${VOL_NAME}"/.background/ + +# tell the Finder to resize the window, set the background, +# change the icon size, place the icons in the right position, etc. +echo ' + tell application "Finder" + tell disk "'${VOL_NAME}'" + open + set current view of container window to icon view + set toolbar visible of container window to false + set statusbar visible of container window to false + set the bounds of container window to {400, 100, 920, 440} + set viewOptions to the icon view options of container window + set arrangement of viewOptions to not arranged + set icon size of viewOptions to 72 + set background picture of viewOptions to file ".background:'${DMG_BACKGROUND_IMG}'" + set position of item "'${APP_NAME}'.app" of container window to {160, 205} + set position of item "Applications" of container window to {360, 205} + close + open + update without registering applications + delay 2 + end tell + end tell +' | osascript + +sync + +# unmount it +hdiutil detach "${DEVICE}" + +# now make the final image a compressed disk image +echo "Creating compressed image" +hdiutil convert "${DMG_TMP}" -format UDZO -imagekey zlib-level=9 -o "${DMG_FINAL}" + +# clean up +rm -rf "${DMG_TMP}" +rm -rf "${STAGING_DIR}" + +echo 'Done.' + +exit \ No newline at end of file