#! /bin/bash
ASROOT=${ASROOT:-sudo}
make_disk_image()
{
local size="$1"
local filename="$2"
case $filename in
*.dmg) ;;
*) filename="$filename.dmg" ;;
esac
local volname=$(echo $filename | sed '-es/.dmg//')
rm -f "$filename"
hdiutil create -fs HFSJ -type SPARSE \
-size "$size" -volname "$volname" "$filename"
}
mount_disk_image()
{
local filename="$1"
case $filename in
*.dmg) ;;
*) filename="$filename.dmg" ;;
esac
local volname=$(echo $filename | sed '-es/.dmg//')
[ -r "$filename" ] || filename="$filename.sparseimage"
if hdiutil attach "$filename" \
-readwrite -mount required -owners on >/dev/null 2>&1 ; then
$ASROOT mdutil -v -i off /Volumes/$volname >/dev/null 2>&1
echo /Volumes/$volname
else
false
fi
}
unmount_disk_image()
{
local filename="$1"
case $filename in
*.dmg) ;;
*) filename="$filename.dmg" ;;
esac
local volname=$(echo $filename | sed '-es/.dmg//')
[ -r "$filename" ] || filename="$filename.sparseimage"
$ASROOT quotaoff -ugv /Volumes/$volname
hdiutil detach /Volumes/$volname
rm -f $filename
true
}