97960c6f28
My turn to make "this cant possibly break" changes to the scripts.
38 lines
No EOL
1.1 KiB
Bash
Executable file
38 lines
No EOL
1.1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
if [ -z "$1" ]; then
|
|
echo "$0 <prID>"
|
|
exit 1;
|
|
fi
|
|
repo=$(git remote get-url origin | sed -E 's/github.com(:|\/)//g')
|
|
data=$(curl -q https://api.github.com/repos/$repo/pulls/$1 2>/dev/null)
|
|
url=$(echo -e "$data" | grep --color=none ssh_url | head -n 1 |awk '{print $2}' | sed 's/"//g' | sed 's/,//g')
|
|
ref=$(echo -e "$data" | grep --color=none '"head":' -A 3 | grep ref | head -n 1 |awk '{print $2}' | sed 's/"//g' | sed 's/,//g')
|
|
prevbranch=$(\git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/')
|
|
branch="pr/$1"
|
|
up="pr-$1"
|
|
git remote remove $up 2>&1 1>/dev/null
|
|
git remote add -f $up $url
|
|
git branch -D $branch 2>/dev/null 1>&2
|
|
git checkout -b $branch $up/$ref 2>/dev/null|| true
|
|
echo "Merging $prevbranch into $branch"
|
|
git fetch origin
|
|
git merge origin/$prevbranch
|
|
|
|
echo "Dropping to new shell, exit to delete the refs"
|
|
bash -i
|
|
|
|
read -p "Press 'p' to push. " -n 1 -r >&2
|
|
echo
|
|
if [[ "d$REPLY" =~ ^d[Pp]$ ]]; then
|
|
git push $up $branch:$ref -f
|
|
|
|
echo "Pushed" >&2
|
|
fi
|
|
|
|
echo "Deleting branch/upstream"
|
|
git checkout $prevbranch
|
|
git branch -D $branch
|
|
git remote remove $up
|
|
git gc
|
|
#git branch -u $up/$ref $branch
|
|
#git checkout $branch |