]> git.ozlabs.org Git - next-scripts/blob - merge_fix
update to_build_host a bit
[next-scripts] / merge_fix
1 #!/bin/bash
2
3 no_build=false
4 [ "$1" = "-n" ] && {
5         shift
6         no_build=true
7 }
8 patch="$1"
9 shift
10 [ -f "$patch" ] || {
11         echo "patch does not exist" 1>&2
12         exit 1
13 }
14
15 . "$(dirname $0)/common.sh"
16
17 log()
18 {
19         echo "$@" | tee -a $LOG_FILE
20 }
21
22 execute()
23 {
24         log "$" $@
25         $@ 2>&1 | tee -a $LOG_FILE
26         return ${PIPESTATUS[0]}
27 }
28
29 old_head=$(git rev-parse HEAD)
30 execute git am -3 "$patch" || {
31         echo "git am failed" 1>&2
32         bash -i || exit
33 }
34 new_head=$(git rev-parse HEAD)
35 [ "$old_head" = "$new_head" ] && {
36         echo "hmmm, looks like the patch was already applied or is unneeded"
37         exit 0
38 }
39 [ "$(git diff ${old_head}.. | wc -c)" -eq 0 ] && {
40         echo "hmmm, committed soemthing, but diff is empty" 1>&2
41         bash -i || exit
42 }
43
44 GIT_EDITOR=: execute git reset 'HEAD^' || {
45         echo "git reset failed" 1>&2
46         bash -i || exit
47 }
48 execute git add -A . || {
49         echo "git add failed" 1>&2
50         bash -i || exit
51 }
52 GIT_EDITOR=: execute git commit -v -a --amend || {
53         echo "git commit failed" 1>&2
54         bash -i || exit
55 }
56
57 $no_build && exit 0
58
59 git push -f "${build_host}${build_host:+:}${build_dir}" master:refs/heads/next || {
60         echo git push failed 1>&2
61         bash -i || exit
62 }
63
64 "$bin_dir/do_build" || {
65         echo Build failed 1>&2
66         bash -i || exit
67 }
68
69 exit 0