3 bin_dir="$(dirname $0)"
5 LOG_FILE="../merge.log"
7 build_dir="/scratch/sfr/next"
8 [ "$NEXT_BUILD_HOST" ] && build_host="$NEXT_BUILD_HOST"
9 [ "$NEXT_BUILD_DIR" ] && build_dir="$NEXT_BUILD_DIR"
19 echo "patch does not exist" 1>&2
31 export NEXT_BUILD_HOST="$build_host"
32 export NEXT_BUILD_DIR="$build_dir"
36 echo "$@" | tee -a $LOG_FILE
42 $@ 2>&1 | tee -a $LOG_FILE
43 return ${PIPESTATUS[0]}
46 old_head=$(git rev-parse HEAD)
47 execute git am -3 "$patch" || {
48 echo "git am failed" 1>&2
51 new_head=$(git rev-parse HEAD)
52 [ "$old_head" = "$new_head" ] && {
53 echo "hmmm, looks like the patch was already applied or is unneeded"
56 [ "$(git diff ${old_head}.. | wc -c)" -eq 0 ] && {
57 echo "hmmm, committed soemthing, but diff is empty" 1>&2
61 GIT_EDITOR=: execute git reset 'HEAD^' || {
62 echo "git reset failed" 1>&2
65 execute git add -A . || {
66 echo "git add failed" 1>&2
69 GIT_EDITOR=: execute git commit -v -a --amend || {
70 echo "git commit failed" 1>&2
76 git push -f "$build_host":"$build_dir" master:refs/heads/next || {
77 echo git push failed 1>&2
81 "$bin_dir/do_build" || {
82 echo Build failed 1>&2