aboutsummaryrefslogtreecommitdiff
path: root/packages/darwin_app/mkdmg
diff options
context:
space:
mode:
Diffstat (limited to 'packages/darwin_app/mkdmg')
-rwxr-xr-xpackages/darwin_app/mkdmg94
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