Skip to content

Instantly share code, notes, and snippets.

@develar
Created October 3, 2016 16:27
Show Gist options
  • Save develar/95d7b9ee5e9d8b44a460ebf16a652a1a to your computer and use it in GitHub Desktop.
Save develar/95d7b9ee5e9d8b44a460ebf16a652a1a to your computer and use it in GitHub Desktop.
#!/bin/bash
EXPLODED=/Users/develar/Documents/onshape-desktop-shell/dist/mac/Onshape.app
VOLNAME=Onshape
BG_PIC=/Users/develar/Documents/onshape-desktop-shell/build/background.png
rm -rf ${EXPLODED}/../test
mkdir -p ${EXPLODED}/../test/.background
cd ${EXPLODED}/../test
cp ${BG_PIC} .background
# allocate space for .DS_Store
dd if=/dev/zero of=.background/DSStorePlaceHolder bs=1024 count=512
TEMP_DMG=/tmp/f.dmg
OUT_DMG=/Users/develar/Documents/onshape-desktop-shell/dist/mac/Onshape.dmg
rm -f $TEMP_DMG
echo "Creating unpacked r/w disk image ${VOLNAME}..."
hdiutil create -srcfolder ${EXPLODED}/../test/.background -srcfolder "${EXPLODED}" -volname "$VOLNAME" -anyowners -nospotlight -quiet -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDRW $TEMP_DMG
# try unmount dmg if it was mounted previously (e.g. developer mounted dmg, installed app and forgot to unmount it)
echo "Unmounting disk image..."
test -d "/Volumes/$VOLNAME" && hdiutil detach "$(hdiutil info | egrep '^/dev/' | sed 1q | awk '{print $1}')"
# mount this image
echo "Mounting unpacked r/w disk image..."
device=$(hdiutil attach -readwrite -noverify -noautoopen $TEMP_DMG | egrep '^/dev/' | sed 1q | awk '{print $1}')
echo "Mounted as ${device}."
sleep 10
# set properties
echo "Updating $VOLNAME disk image styles..."
rm /Volumes/"$VOLNAME"/.background/DSStorePlaceHolder
ln -s /Applications /Volumes/"$VOLNAME"/" "
cd "$(dirname "$0")"
VERSIONER_PERL_PREFER_32_BIT=true perl "makedmg.pl" "$VOLNAME" background.png
sync;sync;sync
hdiutil detach ${device}
echo "Compressing r/w disk image to $OUT_DMG..."
hdiutil convert $TEMP_DMG -quiet -format UDZO -imagekey zlib-level=9 -o $OUT_DMG
rm -f $TEMP_DMG
hdiutil internet-enable -no $OUT_DMG
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment