-- This Applescript sets up the installer disk image: size, background image, -- icon view, background image, icon positioning. -- Usage: osascript installer-dmg.applescript -- where is the volume name of the disk image. on run (volumeName) tell application "Finder" tell disk (volumeName as string) open set theXOrigin to 200 set theYOrigin to 200 set theWidth to 340 set theHeight to 240 set iconSize to 55 set theBottomRightX to (theXOrigin + theWidth) set theBottomRightY to (theYOrigin + theHeight) set dsStore to "\"" & "/Volumes/" & volumeName & "/" & ".DS_STORE\"" tell container window set current view to icon view set toolbar visible to false set statusbar visible to false set the bounds to {theXOrigin, theYOrigin, theBottomRightX, theBottomRightY} set statusbar visible to false set file_list to every file repeat with i in file_list if the name of i is "Applications" then set the position of i to {200, 90} else if the name of i ends with ".app" then set the position of i to {50, 90} end if end repeat -- This close-open hack is nessesary to save positions on 10.6 Snow Leopard close open end tell set opts to the icon view options of container window tell opts set icon size to iconSize set arrangement to not arranged end tell set background picture of opts to file "background.png" update without registering applications -- Force saving of the size delay 1 tell container window set statusbar visible to false set the bounds to {theXOrigin, theYOrigin, theBottomRightX - 10, theBottomRightY - 10} end tell update without registering applications end tell delay 1 tell disk (volumeName as string) tell container window set statusbar visible to false set the bounds to {theXOrigin, theYOrigin, theBottomRightX, theBottomRightY} end tell update without registering applications end tell --give the finder some time to write the .DS_Store file delay 3 set waitTime to 0 set ejectMe to false repeat while ejectMe is false delay 1 set waitTime to waitTime + 1 if (do shell script "[ -f " & dsStore & " ]; echo $?") = "0" then set ejectMe to true end repeat log "waited " & waitTime & " seconds for .DS_STORE to be created." end tell end run