45 lines
577 B
Bash
45 lines
577 B
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
set -euo pipefail
|
||
|
|
||
|
ID=""
|
||
|
REMOTE="origin"
|
||
|
LOCAL_BRANCH=""
|
||
|
|
||
|
while [[ $# -gt 0 ]]; do
|
||
|
case $1 in
|
||
|
--remote)
|
||
|
REMOTE="$2"
|
||
|
shift
|
||
|
shift
|
||
|
;;
|
||
|
--local-branch)
|
||
|
LOCAL_BRANCH="$2"
|
||
|
shift
|
||
|
shift
|
||
|
;;
|
||
|
*)
|
||
|
if [[ -z "${ID}" ]]; then
|
||
|
ID="$1"
|
||
|
shift
|
||
|
else
|
||
|
echo "Unknown option $1"
|
||
|
exit 1
|
||
|
fi
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
if [[ -z "${ID}" ]]; then
|
||
|
echo "Specify GitHub PR number"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if [[ -z "${LOCAL_BRANCH}" ]]; then
|
||
|
LOCAL_BRANCH="pr/${ID}"
|
||
|
fi
|
||
|
|
||
|
git fetch "${REMOTE}" "pull/${ID}/head:${LOCAL_BRANCH}"
|
||
|
|
||
|
git switch "${LOCAL_BRANCH}"
|