annotate deploy/osx/deploy.sh @ 490:bc04d651f8a4

Ensure all windows are closed when the main one is (thus exiting the application even if some other windows were still open)
author Chris Cannam
date Thu, 19 Jan 2012 15:36:59 +0000
parents 0ef4943f55ae
children f8833ed742fc
rev   line source
Chris@409 1 #!/bin/bash
Chris@409 2
Chris@409 3 # Execute this from the top-level directory of the project (the one
Chris@409 4 # that contains the .app bundle). Supply the name of the .app bundle
Chris@409 5 # as argument (the target will use $app.app regardless, but we need
Chris@409 6 # to know the source)
Chris@409 7
Chris@409 8 source="$1"
Chris@409 9 dmg="$2"
Chris@409 10 if [ -z "$source" ] || [ ! -d "$source" ] || [ -z "$dmg" ]; then
Chris@409 11 echo "Usage: $0 <source.app> <target-dmg-basename>"
Chris@463 12 echo " e.g. $0 MyApplication.app MyApplication"
Chris@463 13 echo " Version number and .dmg will be appended automatically,"
Chris@463 14 echo " but the .app name must include .app"
Chris@409 15 exit 2
Chris@409 16 fi
Chris@409 17 app=`basename "$source" .app`
Chris@409 18
Chris@409 19 version=`perl -p -e 's/^[^"]*"([^"]*)".*$/$1/' version.h`
Chris@409 20 case "$version" in
Chris@409 21 [0-9].[0-9]) bundleVersion="$version".0 ;;
Chris@409 22 [0-9].[0-9].[0-9]) bundleVersion="$version" ;;
Chris@409 23 *) echo "Error: Version $version is neither two- nor three-part number" ;;
Chris@409 24 esac
Chris@409 25
Chris@409 26 echo
Chris@409 27 echo "Making target tree."
Chris@409 28
Chris@409 29 volume="$app"-"$version"
Chris@409 30 target="$volume"/"$app".app
Chris@409 31 dmg="$dmg"-"$version".dmg
Chris@409 32
Chris@409 33 mkdir "$volume" || exit 1
Chris@409 34
Chris@409 35 ln -s /Applications "$volume"/Applications
Chris@412 36 cp README README.OSC COPYING CHANGELOG "$volume/"
Chris@409 37 cp -rp "$source" "$target"
Chris@409 38
Chris@409 39 echo "Done"
Chris@409 40
Chris@409 41 echo "Writing version $bundleVersion in to bundle."
Chris@409 42 echo "(This should be a three-part number: major.minor.point)"
Chris@409 43
Chris@409 44 perl -p -e "s/SV_VERSION/$bundleVersion/" deploy/osx/Info.plist \
Chris@409 45 > "$target"/Contents/Info.plist
Chris@409 46
Chris@409 47 echo "Done: check $target/Contents/Info.plist for sanity please"
Chris@409 48
Chris@409 49 echo
Chris@409 50 echo "Making dmg..."
Chris@409 51
Chris@409 52 hdiutil create -srcfolder "$volume" "$dmg" -volname "$volume" &&
Chris@409 53 rm -r "$volume"
Chris@409 54
Chris@409 55 echo "Done"