3 LOG_FILE="../merge.log"
5 build_dir="/scratch/sfr/next"
6 build_cmd="bin/build_next"
15 echo "patch does not exist" 1>&2
18 [ -n "$2" ] && build_host="$2"
22 echo "$@" | tee -a $LOG_FILE
28 $@ 2>&1 | tee -a $LOG_FILE
29 return ${PIPESTATUS[0]}
32 old_head=$(git rev-parse HEAD)
33 execute git am -3 "$patch" || {
34 echo "git am failed" 1>&2
37 new_head=$(git rev-parse HEAD)
38 [ "$old_head" = "$new_head" ] && {
39 echo "hmmm, looks like the patch was already applied or is unneeded"
42 [ "$(git diff ${old_head}.. | wc -c)" -eq 0 ] && {
43 echo "hmmm, committed soemthing, but diff is empty" 1>&2
47 GIT_EDITOR=: execute git reset 'HEAD^' || {
48 echo "git reset failed" 1>&2
51 execute git add . || {
52 echo "git add failed" 1>&2
55 GIT_EDITOR=: execute git commit -v -a --amend || {
56 echo "git commit failed" 1>&2
62 rsync -avH --exclude .git --delete . "$build_host":"$build_dir"/. || {
63 echo Rsync failed 1>&2
67 echo "Building using $build_cmd on $build_host"
68 ssh "$build_host" "$build_cmd" || {
69 echo Build failed 1>&2