Loading script/brew-publish +7 −46 Original line number Diff line number Diff line #!/bin/bash # Usage: script/brew-publish <name> <version> [<gh-project>] # # Updates the `<name>.rb` Homebrew formula to `<version>` and sends a pull # request with the change. set -e # Usage: script/brew-publish <formula-name> <repo> <version> set -euo pipefail brew_name="${1?}" version="${2?}" if ! type -p hub >/dev/null; then "ERROR: You have to install hub to proceed." >&2 exit 1 fi if [ -n "$3" ]; then gh_project="github.com/${3}" else gh_project="$(git remote -v | grep '^origin' | grep -oE 'github.com[:/][^/]+/[^/ ]+' | head -1)" gh_project="${gh_project%.git}" fi url="https://${gh_project/:/\/}/archive/${version}.tar.gz" repo="${2?}" version="${3?}" shift 3 url="https://github.com/${repo}/archive/${version}.tar.gz" checksum="$(curl -fsSL "$url" | shasum -a 256 -b | awk '{print $1}')" if [ -z "$checksum" ]; then echo "ERROR: calculating the checksum failed for $url" >&2 exit 1 fi pushd "$(brew --prefix)" git fetch -q --unshallow origin master 2>/dev/null || git fetch -q origin master branch="${brew_name}-${version}" git checkout -q -B "$branch" origin/master formula="Library/Formula/${brew_name}.rb" sed -i.bak -E " s!^( url ).+!\\1\"${url}\"! s!^( sha256 ).+!\\1\"${checksum}\"! " "$formula" rm -f "${formula}.bak" git commit -m "${brew_name} ${version#v}" -- "$formula" # hackish way of getting the git remote name for user's fork fork_remote="$(hub fork 2>&1 | grep -oE 'remote:? \S+' | tail -1 | awk '{print $2}')" git push -u "$fork_remote" HEAD hub pull-request -m "${brew_name} ${version#v}" git checkout -q - brew bump-formula-pr --url="$url" --sha256="$checksum" "$brew_name" "$@" script/release +2 −3 Original line number Diff line number Diff line Loading @@ -41,7 +41,6 @@ git push origin master "${version_tag}" { echo "ruby-build ${new_version}" echo git log --no-merges --format='%w(0,0,2)* %B' --reverse "${previous_tag}..HEAD^" -- bin share } | hub release create -dF - -c "$(git rev-parse HEAD)" "$version_tag" || true hub browse -- "releases/${version_tag}" } | hub release create -dF - "$version_tag" || true script/brew-publish ruby-build "$version_tag" script/brew-publish ruby-build rbenv/ruby-build "$version_tag" Loading
script/brew-publish +7 −46 Original line number Diff line number Diff line #!/bin/bash # Usage: script/brew-publish <name> <version> [<gh-project>] # # Updates the `<name>.rb` Homebrew formula to `<version>` and sends a pull # request with the change. set -e # Usage: script/brew-publish <formula-name> <repo> <version> set -euo pipefail brew_name="${1?}" version="${2?}" if ! type -p hub >/dev/null; then "ERROR: You have to install hub to proceed." >&2 exit 1 fi if [ -n "$3" ]; then gh_project="github.com/${3}" else gh_project="$(git remote -v | grep '^origin' | grep -oE 'github.com[:/][^/]+/[^/ ]+' | head -1)" gh_project="${gh_project%.git}" fi url="https://${gh_project/:/\/}/archive/${version}.tar.gz" repo="${2?}" version="${3?}" shift 3 url="https://github.com/${repo}/archive/${version}.tar.gz" checksum="$(curl -fsSL "$url" | shasum -a 256 -b | awk '{print $1}')" if [ -z "$checksum" ]; then echo "ERROR: calculating the checksum failed for $url" >&2 exit 1 fi pushd "$(brew --prefix)" git fetch -q --unshallow origin master 2>/dev/null || git fetch -q origin master branch="${brew_name}-${version}" git checkout -q -B "$branch" origin/master formula="Library/Formula/${brew_name}.rb" sed -i.bak -E " s!^( url ).+!\\1\"${url}\"! s!^( sha256 ).+!\\1\"${checksum}\"! " "$formula" rm -f "${formula}.bak" git commit -m "${brew_name} ${version#v}" -- "$formula" # hackish way of getting the git remote name for user's fork fork_remote="$(hub fork 2>&1 | grep -oE 'remote:? \S+' | tail -1 | awk '{print $2}')" git push -u "$fork_remote" HEAD hub pull-request -m "${brew_name} ${version#v}" git checkout -q - brew bump-formula-pr --url="$url" --sha256="$checksum" "$brew_name" "$@"
script/release +2 −3 Original line number Diff line number Diff line Loading @@ -41,7 +41,6 @@ git push origin master "${version_tag}" { echo "ruby-build ${new_version}" echo git log --no-merges --format='%w(0,0,2)* %B' --reverse "${previous_tag}..HEAD^" -- bin share } | hub release create -dF - -c "$(git rev-parse HEAD)" "$version_tag" || true hub browse -- "releases/${version_tag}" } | hub release create -dF - "$version_tag" || true script/brew-publish ruby-build "$version_tag" script/brew-publish ruby-build rbenv/ruby-build "$version_tag"