Whamcloud - gitweb
LU-1691 kernel: kernel update [SLES11 SP2 3.0.34-0.7.9]
[fs/lustre-release.git] / build / test-commit-msg.sh
1 #!/bin/bash
2
3 program=$0
4 progdir=$(\cd $(dirname $0) >/dev/null && pwd)
5
6 die() {
7         exec 1>&2
8         echo "$program fatal error:  $*"
9         exit 1
10 }
11
12 TEMPFILE=$(mktemp ${TMPDIR:-.}/commit-XXXXXX)
13 test -f "$TEMPFILE" || die "mktemp fails"
14 trap "rm -f $TEMPFILE COMMIT*" EXIT
15
16 test $# -eq 0 && set -- ${progdir}/commit.*
17
18 export FAIL=""
19 readonly report_fmt='%-20s %s\n'
20 for f; do
21         case "$f" in
22         ( *.orig | *.rej ) continue ;;
23         esac
24
25         cp $f $TEMPFILE
26         results=$(exec 2>&1 ${SHELL:-sh} $progdir/commit-msg $TEMPFILE)
27         case $'\n'"$results" in
28         ( *$'\nerror:'* ) OK=0 ;;
29         ( * ) OK=1 ;;
30         esac
31
32         f=$(basename $f)
33         case $OK${f#*commit.} in
34         1ok*)   printf "$report_fmt" $f: "PASS (was allowed)" ;;
35         0ok*)   printf "$report_fmt" $f: "FAIL (not allowed)"; FAIL="$FAIL $f";;
36         0*)     printf "$report_fmt" $f: "PASS (found error)" ;;
37         *)      printf "$report_fmt" $f: "FAIL (no error)"   ; FAIL="$FAIL $f";;
38         esac
39 done
40
41 if [ -n "$FAIL" ]; then
42         echo -e "\nerror: commit-msg test(s) failed!" 1>&2
43         echo "   $FAIL"
44 fi
45
46 rm -f $TEMPFILE $TEMPFILE.*