[2317] | 1 | #!/bin/bash |
---|
| 2 | |
---|
| 3 | ROOT=$PWD |
---|
| 4 | REV=$1 |
---|
| 5 | LOGFILE=${ROOT}/logs/${REV}.log |
---|
| 6 | |
---|
| 7 | function im-not-the-next() { |
---|
| 8 | for i in `ls queue` |
---|
| 9 | do |
---|
| 10 | if [ $i -lt $REV ]; then |
---|
| 11 | true |
---|
| 12 | return |
---|
| 13 | fi |
---|
| 14 | done |
---|
| 15 | false |
---|
| 16 | } |
---|
| 17 | |
---|
| 18 | function make-dir () { |
---|
| 19 | if [ ! -d $1 ]; then |
---|
| 20 | mkdir $1 |
---|
| 21 | fi |
---|
| 22 | } |
---|
| 23 | |
---|
| 24 | function makecheck () { |
---|
| 25 | if [ `which $(echo $CXX|cut -f1 -d' ' )` ]; then |
---|
| 26 | make-dir $ODIR && |
---|
| 27 | cd $ODIR && |
---|
| 28 | time ../trunk/configure $* && |
---|
| 29 | time make check && |
---|
| 30 | cd .. |
---|
| 31 | else |
---|
| 32 | echo |
---|
| 33 | echo '***************************************************************' |
---|
| 34 | echo " COMPILER $CXX CANNOT BE FOUND" |
---|
| 35 | echo '***************************************************************' |
---|
| 36 | echo |
---|
| 37 | fi |
---|
| 38 | } |
---|
| 39 | |
---|
| 40 | function check-compilers() { |
---|
| 41 | cd trunk && |
---|
| 42 | autoreconf -vi && |
---|
| 43 | cd .. && |
---|
| 44 | # ODIR=gcc-3.3 CXX=g++-3.3 CXXFLAGS='-W -Wall -Werror' makecheck --enable-demo --enable-benchmark && |
---|
| 45 | # ODIR=gcc-3.4 CXX=g++-3.4 CXXFLAGS='-W -Wall -Werror' makecheck --enable-demo --enable-benchmark && |
---|
| 46 | # ODIR=gcc-4.0 CXX=g++-4.0 CXXFLAGS='-W -Wall -Werror' makecheck --enable-demo --enable-benchmark && |
---|
| 47 | ODIR=gcc-4.1 CXX=g++-4.1 CXXFLAGS='-W -Wall -Werror' makecheck --enable-demo --enable-benchmark && |
---|
| 48 | # # ODIR=icc-8.0 CXX=icpc-8.0 CXXFLAGS='-Werror' makecheck --enable-demo --enable-benchmark && |
---|
| 49 | # ODIR=icc-9.0 CXX='icpc-9.0' CXXFLAGS='-Werror' makecheck --enable-demo --enable-benchmark && |
---|
| 50 | # ODIR=mingw CXX='g++' makecheck --with-msw --target=i586-mingw32msvc --host=i586-mingw32msvc --build=i386-linux --without-glpk && |
---|
| 51 | echo && |
---|
| 52 | echo '**********************************************************************' && |
---|
| 53 | echo ' REPOSITORY SEEMS OK' && |
---|
| 54 | echo '**********************************************************************' && |
---|
| 55 | echo |
---|
| 56 | } |
---|
| 57 | |
---|
| 58 | if [ $# -eq 0 ]; then |
---|
| 59 | echo 'Usage:' |
---|
| 60 | echo ' commit-checker --init' |
---|
| 61 | echo ' commit-checker revision' |
---|
| 62 | exit 1 |
---|
| 63 | elif [ $1 = '--init' ]; then |
---|
| 64 | rm -rf queue |
---|
| 65 | mkdir queue |
---|
| 66 | make-dir logs |
---|
| 67 | rm -rf trunk |
---|
| 68 | svn co https://lemon.cs.elte.hu/svn/hugo/trunk |
---|
| 69 | exit 0 |
---|
| 70 | fi |
---|
| 71 | |
---|
| 72 | touch ${ROOT}/queue/$REV |
---|
| 73 | |
---|
| 74 | while im-not-the-next; do |
---|
| 75 | sleep 10 |
---|
| 76 | done |
---|
| 77 | |
---|
| 78 | # echo RUN $REV |
---|
| 79 | |
---|
| 80 | svn up -r$REV trunk >${LOGFILE} 2>&1 |
---|
| 81 | |
---|
| 82 | AUTHOR=`svn info trunk|grep 'Last Changed Author:'|cut -d ' ' -f 4` |
---|
| 83 | EMAIL=`awk '$1=="'${AUTHOR}'" {print $2}' <${ROOT}/e-mails` |
---|
| 84 | |
---|
| 85 | echo ' |
---|
| 86 | |
---|
| 87 | ************************************************************* |
---|
| 88 | Check revision '${REV}' of '${AUTHOR}' ('${EMAIL}') |
---|
| 89 | ************************************************************* |
---|
| 90 | |
---|
| 91 | '>>${LOGFILE} 2>&1 |
---|
| 92 | |
---|
| 93 | if check-compilers >>${LOGFILE} 2>&1 |
---|
| 94 | then |
---|
| 95 | echo -n |
---|
| 96 | else |
---|
| 97 | echo 'Dear '${AUTHOR}', |
---|
| 98 | Your svn commit -r'${REV}' made the repository broken. |
---|
| 99 | The compilation log is attached. |
---|
| 100 | Please fix the problem as soon as possible. |
---|
| 101 | |
---|
| 102 | Best regards, |
---|
| 103 | LEMON Commit Checking Service |
---|
| 104 | '| |
---|
[2319] | 105 | mail -a ${LOGFILE} -s '[LEMON-SVN] WARNING: Revision '${REV}' is broken' \ |
---|
[2318] | 106 | ${EMAIL} alpar@cs.elte.hu |
---|
| 107 | |
---|
| 108 | echo 'Commit -r'${REV}' made the repository broken. |
---|
| 109 | Do not update until this bug is fixed, unless you really need it. |
---|
| 110 | |
---|
| 111 | Best regards, |
---|
| 112 | LEMON Commit Checking Service |
---|
| 113 | '| |
---|
[2319] | 114 | mail -s 'WARNING: Revision '${REV}' is broken' \ |
---|
[2318] | 115 | ${EMAIL} lemon-commits@lemon.cs.elte.hu |
---|
[2317] | 116 | fi |
---|
| 117 | |
---|
| 118 | # rm ${LOGFILE} |
---|
| 119 | rm ${ROOT}/queue/$REV |
---|
| 120 | |
---|