| [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 .. && | 
|---|
| [2365] | 44 | ODIR=gcc-3.3 CXX=g++-3.3 CXXFLAGS='-W -Wall -Werror' makecheck --enable-demo --enable-benchmark --with-soplex=/usr/local/soplex && | 
|---|
|  | 45 | ODIR=gcc-3.4 CXX=g++-3.4 CXXFLAGS='-W -Wall -Werror' makecheck --enable-demo --enable-benchmark --with-soplex=/usr/local/soplex && | 
|---|
|  | 46 | ODIR=gcc-4.0 CXX=g++-4.0 CXXFLAGS='-W -Wall -Werror' makecheck --enable-demo --enable-benchmark --with-soplex=/usr/local/soplex && | 
|---|
|  | 47 | ODIR=gcc-4.1 CXX=g++-4.1 CXXFLAGS='-W -Wall -Werror' makecheck --enable-demo --enable-benchmark --with-soplex=/usr/local/soplex && | 
|---|
| [2317] | 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}', | 
|---|
| [2327] | 98 | Your svn commit -r'${REV}' made the repository broken, or at least | 
|---|
|  | 99 | the compiler emits warnings during the build process. | 
|---|
| [2317] | 100 | The compilation log is attached. | 
|---|
|  | 101 | Please fix the problem as soon as possible. | 
|---|
|  | 102 |  | 
|---|
|  | 103 | Best regards, | 
|---|
|  | 104 | LEMON Commit Checking Service | 
|---|
|  | 105 | '| | 
|---|
| [2319] | 106 | mail -a ${LOGFILE} -s '[LEMON-SVN] WARNING: Revision '${REV}' is broken' \ | 
|---|
| [2318] | 107 | ${EMAIL} alpar@cs.elte.hu | 
|---|
|  | 108 |  | 
|---|
| [2327] | 109 | echo 'Commit -r'${REV}' made the repository broken, or at least | 
|---|
|  | 110 | the compiler emits warnings during the build process. | 
|---|
| [2318] | 111 | Do not update until this bug is fixed, unless you really need it. | 
|---|
|  | 112 |  | 
|---|
|  | 113 | Best regards, | 
|---|
|  | 114 | LEMON Commit Checking Service | 
|---|
|  | 115 | '| | 
|---|
| [2319] | 116 | mail -s 'WARNING: Revision '${REV}' is broken' \ | 
|---|
| [2318] | 117 | ${EMAIL} lemon-commits@lemon.cs.elte.hu | 
|---|
| [2317] | 118 | fi | 
|---|
|  | 119 |  | 
|---|
|  | 120 | #    rm ${LOGFILE} | 
|---|
|  | 121 | rm ${ROOT}/queue/$REV | 
|---|
|  | 122 |  | 
|---|