2011-07-10 07:54:04 -04:00
|
|
|
#!/bin/bash
|
2011-07-09 11:17:52 -04:00
|
|
|
|
|
|
|
## Cleanup
|
|
|
|
rm -rf build/ dist/
|
|
|
|
rm -f Pesterchum.dmg
|
|
|
|
|
|
|
|
### Force build with custom installed frameworky python not system python
|
|
|
|
/Library/Frameworks/Python.framework/Versions/2.6/bin/python setup-py2app.py py2app
|
|
|
|
#python setup-py2app.py py2app
|
|
|
|
#
|
|
|
|
### Do some .app tings
|
|
|
|
touch dist/Pesterchum.app/Contents/Resources/qt.conf
|
|
|
|
find dist/Pesterchum.app -iname "*_debug" -exec rm -f '{}' \;
|
|
|
|
|
|
|
|
## Create a dmg file to hold everything
|
2011-07-10 07:54:04 -04:00
|
|
|
VERSION=$(python version.py) #"3.41.2 Beta 5"
|
2011-07-09 11:17:52 -04:00
|
|
|
SIZE=2000
|
|
|
|
name="Pesterchum"
|
|
|
|
title="${name} ${VERSION}"
|
|
|
|
CHANGELOG="Changelog.rtf"
|
|
|
|
PYQUIRKS="Python Quirks.rtf"
|
|
|
|
TODO="To Do.rtf"
|
|
|
|
README="Read Me!.rtf"
|
|
|
|
## Make a proper installer dmg not just effectively a zip file.
|
|
|
|
#
|
|
|
|
# Most of this is from http://stackoverflow.com/questions/96882/
|
|
|
|
# I've fiddled with it a little
|
|
|
|
|
|
|
|
# Store the background picture (in PNG format) in a folder called ".background"
|
|
|
|
# in the DMG, and store its name in the "backgroundPictureName" variable.
|
|
|
|
|
|
|
|
mkdir dist/.background
|
|
|
|
cp MacBuild/dmg_background.png dist/.background/display.png
|
|
|
|
|
|
|
|
# Convert markdown files to rich text files
|
|
|
|
convert=~/Library/Haskell/bin/pandoc
|
|
|
|
if ! test -e "${convert}"
|
|
|
|
then
|
|
|
|
echo "Please install pandoc from http://johnmacfarlane.net/pandoc/" 1>&2
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "Converting CHANGELOG . . . "
|
|
|
|
$convert --standalone --smart --from=markdown --to=rtf --output="dist/${CHANGELOG}" CHANGELOG.mkdn
|
|
|
|
echo "Converting PYQUIRKS . . ."
|
|
|
|
$convert --standalone --smart --from=markdown --to=rtf --output="dist/${PYQUIRKS}" PYQUIRKS.mkdn
|
|
|
|
echo "Converting TODO . . ."
|
|
|
|
$convert --standalone --smart --from=markdown --to=rtf --output="dist/${TODO}" TODO.mkdn
|
|
|
|
echo "Converting README . . ."
|
|
|
|
$convert --standalone --smart --from=markdown --to=rtf --output="dist/${README}" README.mkdn
|
|
|
|
|
|
|
|
# Create a R/W DMG. It must be larger than the result will be.
|
|
|
|
# In this example, the bash variable "size" contains the size
|
|
|
|
# in Kb and the contents of the folder in the "source" bash
|
|
|
|
# variable will be copied into the DMG:
|
|
|
|
# Note: I've removed the size argument
|
|
|
|
|
|
|
|
echo "Creating initial DMG file . . ."
|
|
|
|
hdiutil create -srcfolder "./dist" -volname "${title}" -fs HFS+ \
|
|
|
|
-fsargs "-c c=64,a=16,e=16" -format UDRW pack.temp.dmg
|
|
|
|
|
|
|
|
# Mount the disk image, and store the device name
|
|
|
|
# (you might want to use sleep for a few seconds after this operation):
|
|
|
|
|
|
|
|
echo "Mounting initial DMG file . . ."
|
|
|
|
device=$(hdiutil attach -readwrite -noverify -noautoopen "pack.temp.dmg" | \
|
|
|
|
egrep '^/dev/' | sed 1q | awk '{print $1}')
|
|
|
|
sleep 2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Use AppleScript to set the visual styles (name of .app must be in bash variable
|
|
|
|
# "applicationName", use variables for the other properties as needed):
|
|
|
|
base=100
|
|
|
|
iconsize=72
|
|
|
|
padding=18
|
|
|
|
echo "Making DMG file pretty with Applescript . . ."
|
|
|
|
echo '
|
|
|
|
tell application "Finder"
|
|
|
|
tell disk "'${title}'"
|
|
|
|
open
|
|
|
|
set current view of container window to icon view
|
|
|
|
set toolbar visible of container window to false
|
|
|
|
set statusbar visible of container window to false
|
|
|
|
set the bounds of container window to {400, 100, 885, 430}
|
|
|
|
set theViewOptions to the icon view options of container window
|
|
|
|
set arrangement of theViewOptions to not arranged
|
|
|
|
set icon size of theViewOptions to 72
|
|
|
|
set background picture of theViewOptions to file ".background:display.png"
|
|
|
|
make new alias file at container window to POSIX file "/Applications" with properties {name:"Applications"}
|
|
|
|
-- Positions
|
|
|
|
set position of item "'${name}'.app" of container window to {100, 100}
|
|
|
|
set position of item "Applications" of container window to {375, 100}
|
|
|
|
set position of item "'${README}'" of container window to {'${base}+${iconsize}*0+${padding}*0', 244}
|
|
|
|
set position of item "'${CHANGELOG}'" of container window to {'${base}+${iconsize}*1+${padding}*1', 244}
|
|
|
|
set position of item "'${PYQUIRKS}'" of container window to {'${base}+${iconsize}*2+${padding}*2', 244}
|
|
|
|
set position of item "'${TODO}'" of container window to {'${base}+${iconsize}*3+${padding}*3', 244}
|
|
|
|
-- Visibility
|
|
|
|
set extension hidden of item "'${CHANGELOG}'" of container window to true
|
|
|
|
set extension hidden of item "'${PYQUIRKS}'" of container window to true
|
|
|
|
set extension hidden of item "'${TODO}'" of container window to true
|
|
|
|
set extension hidden of item "'${README}'" of container window to true
|
|
|
|
close
|
|
|
|
open
|
|
|
|
update without registering applications
|
|
|
|
delay 5
|
|
|
|
eject
|
|
|
|
end tell
|
|
|
|
end tell
|
|
|
|
' | osascript
|
|
|
|
|
|
|
|
# This took so long to work out how to do ._.
|
|
|
|
# Stolen from http://lists.apple.com/archives/darwin-userlevel/2007/Oct/msg00000.html
|
|
|
|
# Set the SLA to read only (dunno why)
|
|
|
|
echo "Converting initial DMG file to a UDRO one . . ."
|
|
|
|
hdiutil convert -ov -format UDRO -o "sla.temp.dmg" "pack.temp.dmg"
|
|
|
|
# Inflate the dmg
|
|
|
|
echo "Inflating UDRO DMG file . . ."
|
|
|
|
hdiutil unflatten "sla.temp.dmg"
|
|
|
|
# Attach the GPL
|
|
|
|
echo "Attaching GPL licence . . ."
|
|
|
|
Rez -a MacBuild/GPL.res -o "sla.temp.dmg"
|
|
|
|
# Steamroller again
|
|
|
|
echo "Deflating UDRO DMG file . . ."
|
|
|
|
hdiutil flatten "sla.temp.dmg"
|
|
|
|
|
|
|
|
# Finialize the DMG by setting permissions properly, compressing and releasing it:
|
|
|
|
|
|
|
|
#chmod -Rf go-w /Volumes/"${title}"
|
|
|
|
sync
|
|
|
|
#hdiutil detach ${device}
|
|
|
|
echo "Compressing UDRO DMG file to UDZO for release . . ."
|
|
|
|
hdiutil convert "sla.temp.dmg" -format UDZO -imagekey zlib-level=6 -o "${name}.dmg"
|
|
|
|
|
|
|
|
# Get rid of the bits
|
|
|
|
echo "Cleaning up . . ."
|
|
|
|
rm -f pack.temp.dmg
|
|
|
|
rm -f sla.temp.dmg
|
2011-03-01 22:03:51 -05:00
|
|
|
rm -rf build/ dist/
|