5 _getdevice_and_halfway_mount()
7 hdid -nomount "$1" | _getdevicebasename | tail -1
12 awk '{print $1}' | sed -e 's|^/dev/||'
17 echo "$1" | sed -e 's|\.dmg$||' -e 's|$|.dmg|'
22 local fstype fs osmajor file mountedname megabytes device
23 [ $# -eq 2 ] || die 1 "Usage: $0 create <file> <megabytes>"
25 # Use case-sensitive HFS+ where available (Darwin >= 7)
28 osmajor=`uname -r | awk 'BEGIN {FS="."} {print $1}'`
29 if [ ${osmajor} -ge 7 ]; then
34 file="`_normalize_filename \"$1\"`"
35 mountedname="`basename \"${file}\" .dmg`"
39 hdiutil create -quiet "${file}" -megabytes ${megabytes} \
40 -partitionType ${fstype} -layout SPUD -fs ${fs}
43 device=`_getdevice_and_halfway_mount "${file}"`
44 hdiutil mount "${file}"
45 disktool -n "${device}" "${mountedname}"
46 hdiutil eject -quiet "${device}"
51 local file device exitcode
52 [ $# -eq 1 ] || die 1 "Usage: $0 mount <file>"
54 file="`_normalize_filename \"$1\"`"
62 local mountpoint device
63 [ $# -eq 1 ] || die 1 "Usage: $0 umount <mount-point>"
66 device=`mount | grep "${mountpoint} (local" | _getdevicebasename`
68 [ "${device}" ] || die 1 "error: no device mounted at ${mountpoint}"
70 hdiutil eject -quiet "${device}"
90 error=`"${action}" "$@" 2>&1` || die ${exitcode} "${error}"
95 [ $# -eq 0 ] && die 1 "Usage: $0 <create|mount|umount>"
99 try 1 "dmg_${ACTION}" "$@"
103 die 1 "Usage: $0 <create|mount|umount>"
108 PATH=${PATH}:/sbin:/usr/sbin