#!/bin/bash
INPUT="${1%%/}" #remove trailing slash
VOLUME="${INPUT##*/}" #compute volume name as folder name
OUTPUT_DIR="${INPUT%/*}" #make output dir the same level as the input's parent
DMG_NAME="${VOLUME}.dmg" #dmg name will be volume name +.dmg
if [ "${INPUT}" = "${OUTPUT_DIR}" ] ; then
OUTPUT_DIR="."
fi
echo "INPUT: ${INPUT}"
echo "OUTPUT_DIR: ${OUTPUT_DIR}"
echo "DMG_NAME: ${DMG_NAME}"
echo "VOLUME: ${VOLUME}"
echo "Constructing DMG File..."
hdiutil create -srcfolder "${INPUT}" -volname "${VOLUME}" -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDBZ "${OUTPUT_DIR}/${DMG_NAME}"
#if you like zlib, replace above line with following line:
#hdiutil create -srcfolder "${INPUT}" -volname "${INPUT}" -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDZO -imagekey zlib-level=9 "${DMG_NAME}"
ERROR="$?"
if [ "$ERROR" -eq 0 ] ; then
echo "DMG Created Successfully!"
else
echo "FAILED!"
exit "$ERROR"
fi