annotate deploy/osx/deploy-and-package.sh @ 2596:04d381f0d89a tip

Default branch is now named default on git as well as hg, in case we ever want to switch to mirroring in the other direction
author Chris Cannam
date Thu, 27 Aug 2020 15:58:56 +0100
parents 19cb6df86ef2
children
rev   line source
Chris@2374 1 #!/bin/bash
Chris@2374 2
Chris@2377 3 # Run this from the project root, without arguments, or with the
Chris@2377 4 # single argument --no-notarization to skip the notarize step
Chris@2377 5
Chris@2377 6 set -e
Chris@2377 7
Chris@2377 8 notarize=yes
Chris@2377 9 if [ "$1" = "--no-notarization" ]; then
Chris@2377 10 notarize=no
Chris@2377 11 elif [ -n "$1" ]; then
Chris@2377 12 echo "Usage: $0 [--no-notarization]"
Chris@2377 13 exit 2
Chris@2377 14 fi
Chris@2377 15
Chris@2377 16 set -u
Chris@2374 17
Chris@2374 18 app="Sonic Visualiser"
Chris@2374 19
Chris@2374 20 version=`perl -p -e 's/^[^"]*"([^"]*)".*$/$1/' version.h`
Chris@2374 21
Chris@2374 22 source="$app.app"
Chris@2374 23 volume="$app"-"$version"
Chris@2374 24 target="$volume"/"$app".app
Chris@2377 25 dmg="$volume".dmg
Chris@2374 26
Chris@2374 27 if [ -d "$volume" ]; then
Chris@2374 28 echo "Target directory $volume already exists, not overwriting"
Chris@2374 29 exit 2
Chris@2374 30 fi
Chris@2374 31
Chris@2374 32 if [ -f "$dmg" ]; then
Chris@2374 33 echo "Target disc image $dmg already exists, not overwriting"
Chris@2374 34 exit 2
Chris@2374 35 fi
Chris@2374 36
Chris@2377 37 if [ "$notarize" = no ]; then
Chris@2377 38 echo
Chris@2377 39 echo "Note: The --no-notarization flag is set: won't be submitting for notarization"
Chris@2377 40 fi
Chris@2377 41
Chris@2374 42 echo
Chris@2374 43 echo "(Re-)running deploy script..."
Chris@2374 44
Chris@2374 45 deploy/osx/deploy.sh "$app" || exit 1
Chris@2374 46
Chris@2374 47 echo
Chris@2374 48 echo "Making target tree."
Chris@2374 49
Chris@2374 50 mkdir "$volume" || exit 1
Chris@2374 51
Chris@2374 52 ln -s /Applications "$volume"/Applications
Chris@2374 53 cp README.md "$volume/README.txt"
Chris@2544 54 cp README_OSC.md "$volume/README_OSC.txt"
Chris@2374 55 cp COPYING "$volume/COPYING.txt"
Chris@2374 56 cp CHANGELOG "$volume/CHANGELOG.txt"
Chris@2374 57 cp CITATION "$volume/CITATION.txt"
Chris@2374 58 cp -rp "$source" "$target"
Chris@2374 59
Chris@2374 60 # update file timestamps so as to make the build date apparent
Chris@2374 61 find "$volume" -exec touch \{\} \;
Chris@2374 62
Chris@2374 63 echo "Done"
Chris@2374 64
Chris@2374 65 echo
Chris@2374 66 echo "Code-signing volume..."
Chris@2374 67
Chris@2374 68 deploy/osx/sign.sh "$volume" || exit 1
Chris@2374 69
Chris@2374 70 echo "Done"
Chris@2374 71
Chris@2374 72 echo
Chris@2374 73 echo "Making dmg..."
Chris@2374 74
Chris@2374 75 rm -f "$dmg"
Chris@2374 76
Chris@2374 77 hdiutil create -srcfolder "$volume" "$dmg" -volname "$volume" -fs HFS+ &&
Chris@2374 78 rm -r "$volume"
Chris@2374 79
Chris@2374 80 echo "Done"
Chris@2374 81
Chris@2374 82 echo
Chris@2374 83 echo "Signing dmg..."
Chris@2374 84
Chris@2374 85 codesign -s "Developer ID Application: Chris Cannam" -fv "$dmg"
Chris@2374 86
Chris@2377 87 if [ "$notarize" = no ]; then
Chris@2377 88 echo
Chris@2377 89 echo "The --no-notarization flag was set: not submitting for notarization"
Chris@2377 90 else
Chris@2377 91 echo
Chris@2377 92 echo "Submitting dmg for notarization..."
Chris@2374 93
Chris@2377 94 deploy/osx/notarize.sh "$dmg" || exit 1
Chris@2377 95 fi
Chris@2374 96
Chris@2374 97 echo "Done"