32 lines
937 B
Bash
32 lines
937 B
Bash
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
: "${REF:="$(git rev-parse --symbolic-full-name HEAD)"}"
|
|
|
|
if [[ "$REF" != refs/heads/* ]]; then
|
|
echo "$REF is not a branch" >&2
|
|
exit 1
|
|
elif [[ "$REF" == refs/heads/patches ]]; then
|
|
REF=refs/heads/master
|
|
fi
|
|
|
|
set -x
|
|
|
|
input="${REF#refs/heads/}"
|
|
upstream="${input#patched/}"
|
|
branch="patched/$upstream"
|
|
|
|
git checkout "$branch" 2>/dev/null || git checkout -b "$branch" origin/patches --no-track
|
|
|
|
git fetch 'https://github.com/OpenZeppelin/openzeppelin-contracts.git' master
|
|
merge_base="$(git merge-base origin/patches FETCH_HEAD)"
|
|
|
|
git fetch 'https://github.com/OpenZeppelin/openzeppelin-contracts.git' "$upstream"
|
|
# Check that patches is not ahead of the upstream branch we're merging.
|
|
if ! git merge-base --is-ancestor "$merge_base" FETCH_HEAD; then
|
|
echo "The patches branch is ahead of $upstream" >&2
|
|
exit 1
|
|
fi
|
|
git merge origin/patches FETCH_HEAD -m "Merge upstream $upstream into $branch"
|