burrow/Tools/export-developer-id.sh
2024-07-07 16:20:20 -07:00

62 lines
1.7 KiB
Bash

#!/bin/bash
export PATH="$PATH:/opt/homebrew/bin:/usr/local/bin:/etc/profiles/per-user/$USER/bin"
set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"/..
ARCHIVE_PATH="$1"
if [[ -z $ARCHIVE_PATH ]]; then
echo "export-developer-id.sh <achive-path>"
exit 1
fi
APP_PATH="$ARCHIVE_PATH/Products/Applications/Burrow.app"
codesign -d --entitlements Burrow.entitlements --xml "$APP_PATH"
TAG_PREFIX="builds/"
CURRENT_BUILD=$(git tag --points-at HEAD | tail -n 1)
LATEST_BUILD="$TAG_PREFIX$(git tag -l "builds/[0-9]*" | cut -d'/' -f 2 | sort -n | tail -n 1)"
CURRENT_BUILD_NUMBER=${CURRENT_BUILD#$TAG_PREFIX}
LATEST_BUILD_NUMBER=${LATEST_BUILD#$TAG_PREFIX}
if [[ -z $LATEST_BUILD_NUMBER ]]; then
LATEST_BUILD_NUMBER="0"
fi
if [[ ! -z $LATEST_BUILD && $(git merge-base --is-ancestor $LATEST_BUILD HEAD) -ne 0 ]]; then
echo "error: HEAD is not descended from build $LATEST_BUILD_NUMBER" >&2
exit 1
fi
BUILD_NUMBER=$LATEST_BUILD_NUMBER
if [[ $# -gt 0 && "$1" == "increment" ]]; then
NEW_BUILD_NUMBER=$((LATEST_BUILD_NUMBER + 1))
NEW_TAG="$TAG_PREFIX$NEW_BUILD_NUMBER"
BUILD_NUMBER=$NEW_BUILD_NUMBER
git tag $NEW_TAG
git push --quiet origin $NEW_TAG
gh release create "$NEW_TAG" -t "Build $BUILD_NUMBER" --verify-tag --generate-notes >/dev/null
fi
if [[ -z $(grep $BUILD_NUMBER Apple/Configuration/Version.xcconfig 2>/dev/null) ]]; then
echo "CURRENT_PROJECT_VERSION = $BUILD_NUMBER" > Apple/Configuration/Version.xcconfig
git update-index --assume-unchanged Apple/Configuration/Version.xcconfig
fi
if [[ $# -gt 0 && "$1" == "status" ]]; then
if [[ $CURRENT_BUILD_NUMBER -eq $LATEST_BUILD_NUMBER ]]; then
echo "clean"
else
echo "dirty"
fi
exit 0
fi
echo $BUILD_NUMBER