Aegisub/aegisub/tools/osx-dmg.sh
Thomas Goyne 1e030289ad Revamp how version tagging works
Rather than having it be a configurable option, simply build in final
release mode if Aegisub is being built from a signed tag, and get the
version information from that tag.

Drop the version number from the OS X app bundle when not building from
a tag as it done everywhere else. Drop the arch suffix since ppc hasn't
been tested in years and isn't worth testing as it's only going to get
less relevant as time goes on.

Remove some redundant definitions in the build system.
2012-08-19 14:33:50 -07:00

107 lines
3.3 KiB
Bash
Executable file

#!/bin/sh
# USAGE: osx-dmg.sh [Bundle Directory] "[Package Name]"
#
# Amar Takhar <verm@aegisub.org>
#
# -------------------------------------------------------------------------------------
# This script is based on osx-dmg.sh from the Inkscape Project http://www.inkscape.org/
#
# Jean-Olivier Irisson <jo.irisson@gmail.com>
# Michael Wybrow <mjwybrow@users.sourceforge.net>
#
# Copyright (C) 2006-2010
# Released under GNU GPL, read the file 'COPYING' from the Inkscape project for more
# information.
TMP_DMG="temp_dmg"
PKG_DIR="Aegisub.app"
PKG_NAME="Aegisub-${1}"
PKG_NAME_RW="Aegisub-${1}_rw.dmg"
PKG_NAME_VOLUME="Aegisub-${1}"
if ! test -d "${PKG_DIR}"; then
echo "\"${PKG_DIR}\" does not exist, please run 'make osx-bundle'"
exit 1;
fi
rm -rf "${TMP_DMG}" "${PKG_NAME}.dmg"
mkdir -v "${TMP_DMG}"
echo
echo "---- Copying ${1} into ${TMP_DMG}/ ----"
cp -R "${PKG_DIR}" "${TMP_DMG}"
echo
echo "---- Setting up ----"
ln -vsf /Applications "${TMP_DMG}"
mkdir -v "${TMP_DMG}/.background"
cp -v packages/osx_dmg/dmg_background.png "${TMP_DMG}/.background/background.png"
cp -v packages/osx_bundle/Contents/Resources/Aegisub.icns "${TMP_DMG}/.VolumeIcon.icns"
echo
echo "---- Creating image ----"
/usr/bin/hdiutil create -srcfolder "${TMP_DMG}" -volname "${PKG_NAME}" -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDRW "${PKG_NAME_RW}" || exit $?
echo
echo "---- Mounting image ----"
DEV_NAME=`/usr/bin/hdiutil attach -readwrite -noverify -noautoopen "${PKG_NAME_RW}" |awk '/Apple_partition_scheme/ {print $1}'` || exit $?
echo "Device name: ${DEV_NAME}"
echo
echo "---- Setting bless -openfolder ----"
bless -openfolder "/Volumes/${PKG_NAME_VOLUME}" || exit $?
echo
echo "---- Setting root icon using SetFile ----"
SetFile -a C "/Volumes/${PKG_NAME_VOLUME}" || exit $?
echo
if test -n "${SET_STYLE}"; then
echo "---- Running AppleScript to set style ----"
SCRIPT_TMP=`mktemp /tmp/aegisub_dmg_as.XXX`
sed -f scripts/osx-bundle.sed packages/osx_dmg/dmg_set_style.applescript > ${SCRIPT_TMP}
/usr/bin/osacompile -o ${SCRIPT_TMP}.scpt ${SCRIPT_TMP}
/usr/bin/osascript ${SCRIPT_TMP}.scpt
open "/Volumes/${PKG_NAME_VOLUME}"
echo "********************************************************"
echo "Please move the window to the center of the screen then"
echo "close it."
echo "********************************************************"
echo
echo "PRESS ENTER WHEN DONE"
open "/Volumes/${PKG_NAME_VOLUME}"
read -e DUMB
hdiutil detach "${DEV_NAME}"
DEV_NAME=`/usr/bin/hdiutil attach -readwrite -noverify -noautoopen "${PKG_NAME_RW}" |awk '/Apple_partition_scheme/ {print $1}'` || exit $?
echo "Device name: ${DEV_NAME}"
cp -v "/Volumes/${PKG_NAME_VOLUME}/.DS_Store" packages/osx_dmg/DS_Store
SetFile -a v packages/osx_dmg/DS_Store
hdiutil detach "${DEV_NAME}"
rm -rf "${TMP_DMG}" "${PKG_NAME_RW}" ${SCRIPT_TMP}.scpt ${SCRIPT_TMP}
exit 0
else
echo "---- Installing DS_Store ----"
cp -v packages/osx_dmg/DS_Store "/Volumes/${PKG_NAME_VOLUME}/.DS_Store"
fi
echo
echo "---- Detaching ----"
/usr/bin/hdiutil detach "${DEV_NAME}" -force || exit $?
echo
echo "---- Compressing ----"
/usr/bin/hdiutil convert "${PKG_NAME_RW}" -format UDBZ -imagekey bzip2-level=9 -o "${PKG_NAME}.dmg" || exit $?
echo
echo "---- Removing \"${TMP_DMG}\", \"${PKG_NAME_RW}\" ----"
rm -rf "${TMP_DMG}" "${PKG_NAME_RW}" || exit $?
echo
echo "Done!"