#!/bin/bash # # script/brew_formula_update # mas # # Updates mas Homebrew core formula: # https://github.com/Homebrew/homebrew-core/blob/master/Formula/mas.rb # # brew bump-formula-pr --help # BREW_CORE_PATH="$(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core/Formula" function usage { echo "Usage: brew_formula_bump [v1.0] [sha1_hash]" echo "- version will be inferred using version script if not provided" echo "- sha will be inferred from the current commit if not provided" exit 1 } # arg 1 - version tag if test -n "$1"; then VERSION="$1" else VERSION="v$(script/version)" fi # arg 2 - revision (commit hash) if test -n "$2"; then REVISION="$2" else REVISION=$(git rev-parse HEAD) fi # Purge the Carthage cache to avoid this error from Homebrew sandboxing: # A shell task (/usr/bin/env git checkout --quiet --force 0.15.0 (launched in /Users/ben/Library/Caches/org.carthage.CarthageKit/dependencies/Commandant)) failed with exit code 128: # fatal: Unable to create '/Users/ben/Library/Caches/org.carthage.CarthageKit/dependencies/Commandant/./index.lock': Operation not permitted rm -rf ~/Library/Caches/org.carthage.CarthageKit echo "Checking to see if this update can be a simple bump." diff "Homebrew/mas.rb" "$BREW_CORE_PATH/mas.rb" # diff exit status status=$? formula_revisions=0 if test $status -ne 0; then echo "There are changes in the local formula (Homebrew/mas.rb) that haven't been released yet." #exit $status formula_revisions=1 fi echo "==> 🧪 Updating homebrew-core formula mas ($VERSION, $REVISION)" echo "Validating formula" brew bump-formula-pr \ --tag="$VERSION" \ --revision="$REVISION" \ --strict \ mas # brew exit status status=$? if test $status -ne 0; then echo "Formula did not validate using 'brew bump-formula-pr'" exit $status fi pushd "$BREW_CORE_PATH" || exit 2 echo "Updating formula" if test $formula_revisions -eq 1; then # Options to dry_run="--dry-run --write" fi brew bump-formula-pr \ --tag="$VERSION" \ --revision="$REVISION" \ --strict \ --verbose \ "$dry_run" \ mas