]> git.ozlabs.org Git - next-scripts/blob - merge_old_version
Various updates I forgot to commit
[next-scripts] / merge_old_version
1 #!/bin/bash
2
3 LOG_FILE="../merge.log"
4 build_host="sprygo"
5 build_dir="/scratch/sfr/next"
6 build_cmd="bin/build_next"
7
8 no_build=false
9 [ "$1" = "-n" ] && {
10         shift
11         no_build=true
12 }
13
14 tree=$1
15 ver=$2
16
17 rev=$(git rev-parse -verify "next-$ver/$tree")
18 [ "$rev" ] || {
19         echo "No such tree/date" 1>&2
20         exit 1
21 }
22
23 [ -n "$3" ] && build_host="$3"
24
25 log()
26 {
27         echo "$@" | tee -a $LOG_FILE
28 }
29
30 execute()
31 {
32         log "$" $@
33         $@ 2>&1 | tee -a $LOG_FILE
34         return ${PIPESTATUS[0]}
35 }
36
37 GIT_EDITOR=: execute git reset --hard 'HEAD^' || {
38         echo "git reset failed" 1>&2
39         bash -i || exit
40 }
41
42 log Merging "next-$ver/$tree"
43 execute git merge "next-$ver/$tree" || {
44         echo Merge failed 1>&2
45         bash -i || exit
46         GIT_EDITOR=: execute git commit -v -a
47         execute git diff -M --stat --summary 'HEAD^..'
48 }
49
50 $no_build && exit 0
51
52 rsync -avH --exclude .git --delete . "$build_host":"$build_dir"/. || {
53         echo Rsync failed 1>&2
54         bash -i || exit
55 }
56
57 echo "Building using $build_cmd on $build_host"
58 ssh "$build_host" "$build_cmd" || {
59         echo Build failed 1>&2
60         bash -i || exit
61 }
62
63 d=$(date --date "5 hours ago" '+%Y%m%d')
64 git update-ref "refs/heads/next-$d/broken/$tree" "refs/heads/next-$d/$tree"
65 git update-ref "refs/heads/next-$d/$tree" "refs/heads/next-$ver/$tree"
66
67 exit 0