diff options
Diffstat (limited to 'packages/darwin_app/mkdmg')
-rwxr-xr-x | packages/darwin_app/mkdmg | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/packages/darwin_app/mkdmg b/packages/darwin_app/mkdmg new file mode 100755 index 00000000..c11d1987 --- /dev/null +++ b/packages/darwin_app/mkdmg @@ -0,0 +1,94 @@ +#!/bin/sh +# +# from: http://www.macosxhints.com/article.php?story=20020311215452999 +# +# +# Creates a disk image (dmg) on Mac OS X from the command line +# from a folder. + +FOLDER="$1" +if [ -z "$FOLDER" ]; then +echo +echo "usage: $0 <folder>" +echo +exit 1 +fi + +if [ ! -d "$FOLDER" ]; then +echo $FOLDER does not exist +exit 2 +fi + +SIZE=`/usr/bin/du -s "$FOLDER" | awk '{ print $1 }'` +# allow space for partition map and directory structure +SIZE=`echo 1024 + $SIZE \* 1.1 / 1 | bc` +NAME=`basename "$FOLDER"` +FILE=$NAME.dmg +TMP=${TMP:-/tmp} + +if [ $SIZE -lt 9216 ]; then +SIZE=9216 +fi + +if [ -e "$FILE" ] ; then +echo $FILE already exists! +exit 3 +fi + +TMPFILE=$TMP/$$.dmg + +echo Creating $TMPFILE from $FOLDER, $SIZE sectors... +hdiutil create $TMPFILE -sectors $SIZE -ov +if [ $? -ne 0 ] ; then +rm -f $TMPFILE +exit 4 +fi +echo + +DEVICES=`hdid -nomount $TMPFILE` +DEVMASTER=`echo $DEVICES| awk '{ print $1 }'` +DEVHFS=`echo $DEVICES| awk '{ print $5 }'` +echo Creating HFS partition $NAME on $TMPFILE at $DEVHFS +newfs_hfs -v "$NAME" $DEVHFS +if [ $? -ne 0 ] ; then +rm -f $TMPFILE +exit 5 +fi +hdiutil eject $DEVMASTER +if [ $? -ne 0 ] ; then +rm -f $TMPFILE +exit 6 +fi +DEVICES=`hdid $TMPFILE` +if [ $? -ne 0 ] ; then +rm -f $TMPFILE +exit 7 +fi + +DEVMASTER=`echo $DEVICES| awk '{ print $1 }'` +DEVHFS=`echo $DEVICES| awk '{ print $5 }'` +echo Copying $FOLDER to /Volumes/$NAME on $DEVMASTER +sudo ditto -rsrcFork "$FOLDER" "/Volumes/$NAME" +if [ $? -ne 0 ]; then +hdiutil eject $DEVMASTER +rm -f $TMPFILE +exit 8 +fi + +hdiutil eject $DEVMASTER +if [ $? -ne 0 ]; then +#rm -f $TMPFILE +exit 9 +fi + +echo "Compressing $NAME to $FILE" +#hdiutil convert $TMPFILE -format UDZO -o "$FILE" +hdiutil convert $TMPFILE -format UDZO -imagekey zlib-level=9 -o "$FILE" +if [ $? -ne 0 ]; then +rm -f "$FILE" $TMPFILE +exit 10 +fi + +rm -f $TMPFILE + +# end |