-
Notifications
You must be signed in to change notification settings - Fork 2
/
git-mhb4.bash
30 lines (27 loc) · 940 Bytes
/
git-mhb4.bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
set -ex
merge=""
sob="-s"
link="-l"
merge_base=""
while [[ "$1" != "" ]]
do
case "$1" in
"--merge") merge="-M"; shift 1;;
"--no-merge") merge=""; shift 1;;
"--merge-base") merge_base="--merge-base=$2"; merge="-M"; shift 2;;
[A-za-z0-9]*|"--") break;;
*) exit "$0: unknown argument $1"; exit 1;;
esac
done
mhng-pipe-scan "$@" | sort -k 4 | cut -d' ' -f1 | while read seqnum
do
if [[ "$(mhng-pipe-header Subject $seqnum | grep "GIT PULL" | wc -l)" != 0 ]]
then
y b4 --no-interactive pr --nostdin "$(mhng-pipe-header Message-ID $seqnum)"
y git merge FETCH_HEAD --no-edit || (git add . && y git commit --no-edit)
GIT_EDITOR=without-choice y git commit --amend -s
else
y b4 --no-interactive shazam -t $merge $merge_base $sob $link "$(mhng-pipe-header Message-ID $seqnum)"
fi
done