3 # $NetBSD: ufsdiskimage,v 1.2 2002/07/26 21:26:18 schmonz Exp $
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 file mountedname megabytes device
23 [ $# -eq 2 ] || die 1 "Usage: $0 create <file> <megabytes>"
25 file="`_normalize_filename \"$1\"`"
26 mountedname="`basename \"${file}\" .dmg`"
30 hdiutil create -quiet "${file}" -megabytes ${megabytes} \
31 -partitionType Apple_UFS -layout SPUD
34 device=`_getdevice_and_halfway_mount "${file}"`
36 hdiutil eject -quiet "${device}"
39 hdiutil mount "${file}"
40 disktool -n "${device}" "${mountedname}"
41 hdiutil eject -quiet "${device}"
42 # mountpoint="`hdiutil mount -verbose '${file}' | grep -A 1 '<key>mount-point</key>' | grep -v '<key>mount-point</key>' | sed -e 's|<string>||' -e 's|</string>||' | awk '{print $1}'`"
43 # mount | grep '^/dev/disk1' | awk '{print $3}' | sed -e 's|^/Volumes/||'
48 local file device exitcode
49 [ $# -eq 1 ] || die 1 "Usage: $0 mount <file>"
51 file="`_normalize_filename \"$1\"`"
59 local mountpoint device
60 [ $# -eq 1 ] || die 1 "Usage: $0 umount <mount-point>"
63 device=`mount | grep "${mountpoint} (local" | _getdevicebasename`
65 [ "${device}" ] || die 1 "error: no device mounted at ${mountpoint}"
67 hdiutil eject -quiet "${device}"
87 error=`"${action}" "$@" 2>&1` || die ${exitcode} "${error}"
92 [ $# -eq 0 ] && die 1 "Usage: $0 <create|mount|umount>"
96 try 1 "dmg_${ACTION}" "$@"
100 die 1 "Usage: $0 <create|mount|umount>"