#!/usr/bin/osascript
--
-- Copyright(C) 2009-2014 Simon Howard
--
-- This program is free software; you can redistribute it and/or
-- modify it under the terms of the GNU General Public License
-- as published by the Free Software Foundation; either version 2
-- of the License, or (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- GNU General Public License for more details.
--
--
-- AppleScript script to automatically set the view properties in a
-- .dmg file - ie. the background image, other Finder view options
-- and icon positions.
--
-- Usage: dmgfix <absolute path to dmg> <disk name> <name of app>
--

on run argv
    set dmgFile to POSIX file (item 1 of argv)
    set diskName to item 2 of argv
    set appName to item 3 of argv

    tell application "Finder"
        --activate
        open dmgFile
        delay 1
        set theDisk to disk diskName
        open POSIX file "/"

        -- window options:

        set bgfile to file "background.png" of theDisk
        set win to the front Finder window
        tell win
            set target to theDisk
            set current view to icon view
            set sidebar width to 0
            set toolbar visible to false
            set statusbar visible to false
            set bounds to {200, 200, 717, 545}
        end tell
        tell icon view options of win
            set icon size to 96
            set background picture to bgfile
        end tell

        -- hide background file:

        set bgloc to quoted form of POSIX path of (bgfile as text)
        do shell script "SetFile -a V " & bgloc

        -- icon positions:

        set position of file "README" of theDisk to {110, 220}
        set position of file "Software License" of theDisk to {400, 220}
        set position of file appName of theDisk to {110, 80}
        set position of file "Applications" of theDisk to {400, 80}

        eject theDisk
    end tell
end run

