mas/script/brew_tap_update

112 lines
2.2 KiB
Text
Raw Normal View History

#!/bin/bash -e
2019-03-31 22:50:25 +00:00
#
2024-03-11 01:32:02 +00:00
# script/brew_tap_update
2019-03-31 22:50:25 +00:00
# mas
#
2024-03-11 01:32:02 +00:00
# Updates mas custom tap formula:
# https://github.com/mas-cli/homebrew-tap/blob/main/Formula/mas.rb
#
2019-03-31 22:50:25 +00:00
2024-03-11 01:32:02 +00:00
MAS_TAP_PATH="$(brew --repository mas-cli/tap)"
MAS_TAP_PATH_FORMULA="${MAS_TAP_PATH}/Formula/mas.rb"
2019-03-31 22:50:25 +00:00
2024-03-10 15:23:53 +00:00
PROJECT_PATH="$(git rev-parse --show-toplevel)"
LOCAL_TAP_FORMULA_PATH="${PROJECT_PATH}/Homebrew/mas-tap.rb"
2019-03-31 22:50:25 +00:00
function usage {
echo "Usage: brew_tap_update [-d] v0.0 [sha1_hash]"
echo " -d option enables dry run mode"
echo " version will be inferred using version script if not provided"
echo " sha will be inferred from the current commit if not provided"
2021-03-21 23:50:09 +00:00
exit 1
2019-03-31 22:50:25 +00:00
}
# Max 3 arguments
2024-03-09 17:22:19 +00:00
if [[ $# -gt 3 ]]; then
usage 1>&2
2024-03-09 17:22:19 +00:00
fi
echo=''
dry_run=''
# Detect presence of `-d` dry run option
while getopts "d" o; do
case "${o}" in
d)
echo='echo (DRY-RUN):'
dry_run='-d'
;;
*)
usage 1>&2
;;
esac
done
shift $((OPTIND-1))
# DRY_RUN environment variable
# shellcheck disable=SC2153
if [[ $DRY_RUN == 'true' ]]; then
echo='echo (DRY-RUN):'
dry_run='-d'
fi
2019-03-31 22:50:25 +00:00
# arg 1 - version tag
if [[ -n "${1}" ]]; then
2024-03-10 15:23:53 +00:00
MAS_VERSION="${1}"
2019-03-31 22:50:25 +00:00
else
2023-11-25 23:04:18 +00:00
MAS_VERSION="v$(script/version)"
2019-03-31 22:50:25 +00:00
fi
2024-03-10 15:23:53 +00:00
echo "MAS_VERSION: ${MAS_VERSION}"
2024-03-09 17:22:19 +00:00
2019-03-31 22:50:25 +00:00
# arg 2 - revision (commit hash)
if [[ -n "${2}" ]]; then
2024-03-10 15:23:53 +00:00
REVISION="${2}"
2019-03-31 22:50:25 +00:00
else
# Derive revision from version. Fails if MAS_VERSION is not a tag.
REVISION=$(git rev-parse "${MAS_VERSION}")
2019-03-31 22:50:25 +00:00
fi
2024-03-10 15:23:53 +00:00
echo "REVISION: ${REVISION}"
2024-03-09 17:22:19 +00:00
################################################################################
#
# Update Version
#
2024-03-10 15:23:53 +00:00
branch_name="releases/release-${MAS_VERSION}"
$echo git switch "${branch_name}"
2024-03-10 15:23:53 +00:00
################################################################################
#
# Create pr on mas-cli/homebrew-tap
#
2024-03-11 01:32:02 +00:00
# Ensure mas is tapped
if ! [[ -d "${MAS_TAP_PATH}" ]]; then
brew tap mas-cli/tap
fi
pushd "${MAS_TAP_PATH}"
branch_name="releases/release-${MAS_VERSION}"
$echo git branch "${branch_name}"
$echo git switch "${branch_name}"
# Update tap formula version
cp -v "${LOCAL_TAP_FORMULA_PATH}" "${MAS_TAP_PATH_FORMULA}"
2024-03-11 01:32:02 +00:00
$echo git add \
"${MAS_TAP_PATH_FORMULA}"
$echo git commit --message="🔖 Version ${MAS_VERSION}"
$echo gh pr create \
--assignee phatblat \
--base main \
--draft \
--fill
popd