/admin/mac/create-dmg.sh
http://github.com/tomahawk-player/tomahawk · Shell · 59 lines · 22 code · 12 blank · 25 comment · 1 complexity · b33bde83c6858e7c42daf7c50fe5b633 MD5 · raw file
- #!/bin/sh
- # author: max@last.fm, muesli@tomahawk-player.org
- # brief: Produces a compressed DMG from a bundle directory
- # usage: Pass the bundle directory as the only parameter
- # note: This script depends on the Tomahawk build system, and must be run from
- # the build directory
- ################################################################################
- #if [ -z $VERSION ]
- #then
- # echo VERSION must be set
- # exit 2
- #fi
- if [ -z "$1" ]
- then
- echo "Please pass the bundle.app directory as the first parameter."
- exit 3
- fi
- ################################################################################
- NAME=$(basename "$1" | perl -pe 's/(.*).app/\1/')
- IN="$1"
- TMP="dmg/$NAME"
- OUT="$NAME.dmg"
- mkdir -p "$TMP"
- ################################################################################
- # clean up
- rm -rf "$TMP"
- rm -f "$OUT"
- # create DMG contents and copy files
- mkdir -p "$TMP/.background"
- cp ../admin/mac/dmg_background.png "$TMP/.background/background.png"
- cp ../admin/mac/DS_Store.in "$TMP/.DS_Store"
- chmod go-rwx "$TMP/.DS_Store"
- ln -s /Applications "$TMP/Applications"
- # copies the prepared bundle into the dir that will become the DMG
- cp -R "$IN" "$TMP"
- # create
- hdiutil makehybrid -hfs -hfs-volume-name "$NAME" -hfs-openfolder "$TMP" "$TMP" -o tmp.dmg
- hdiutil convert -format UDZO -imagekey zlib-level=9 tmp.dmg -o "$OUT"
- # cleanup
- rm tmp.dmg
- #hdiutil create -srcfolder "$TMP" \
- # -format UDZO -imagekey zlib-level=9 \
- # -scrub \
- # "$OUT" \
- # || die "Error creating DMG :("
- # done !
- echo 'DMG size:' `du -hs "$OUT" | awk '{print $1}'`