Anki/qt/launcher/mac/dmg/build.sh
2025-07-15 22:26:46 +07:00

48 lines
1.3 KiB
Bash
Executable file

# Copyright: Ankitects Pty Ltd and contributors
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
set -e
# base folder with Anki.app in it
output="$1"
dist="$1/tmp"
ANKI_VERSION=$(cat ../../../.version | tr -d '\n')
dmg_path="$output/anki-launcher-$ANKI_VERSION-mac.dmg"
if [ -d "/Volumes/Anki" ]
then
echo "You already have one Anki mounted, unmount it first!"
exit 1
fi
rm -rf $dist $dmg_path
mkdir -p $dist
rsync -av $output/Anki.app $dist/
script_folder=$(dirname $0)
echo "bundling..."
ln -s /Applications $dist/Applications
mkdir -p $dist/.background
cp ${script_folder}/anki-logo-bg.png $dist/.background
cp ${script_folder}/dmg_ds_store $dist/.DS_Store
# create a writable dmg first, and modify its layout with AppleScript
hdiutil create -attach -ov -format UDRW -fs HFS+ -volname Anki -srcfolder $dist -o /tmp/Anki-rw.dmg
# announce before making the window appear
say "applescript"
open /tmp/Anki-rw.dmg
sleep 2
open ${script_folder}/set-dmg-settings.app
sleep 2
hdiutil detach "/Volumes/Anki" || (sleep 3; hdiutil detach /Volumes/Anki)
sleep 1
if [ -d "/Volumes/Anki" ]
then
echo "drive did not detach"
exit 1
fi
# convert it to a read-only image
rm -rf $dmg_path
hdiutil convert /tmp/Anki-rw.dmg -ov -format ULFO -o $dmg_path
rm -rf /tmp/Anki-rw.dmg