#!/bin/sh # # checkCtrlM checks source code for explicit ctrl-M's # checks only files with the following extensions: .c, .cxx, .txx, .html, .htm # exits with 0, if all commited files pass the test. # exits with 1, if any one of the tests fails # # checkCtrlM can be run as a cvs commitinfo command. # The following commitinfo line (without the #) will run the script # ALL $CVSROOT/CVSROOT/checkCtrlM # failed=0 # # skip the first arg, the directory shift 1 for file in "$@"; do # # select files with extentions .txx, .cxx, .h, .html, .htm, .c, .txt, .cmake match=`echo $file | egrep \[\.\]txx\$\|\[\.\]cxx\$\|\[\.\]h\$\|\[\.\]html\$\|\[\.\]htm\$\|\[\.\]c\$\|\[\.\]txt\$\|\[\.\]cmake\$` if [ "x$match" != "x" ] ; then count=`grep -n \$ /dev/null $file|wc -c` results=`expr $count \| 0` if [ "$results" != "0" ]; then echo "==========================================================" if [ $results -lt 200 ]; then grep -n \$ /dev/null $file fi echo "" echo "$file has ^M's. They must be removed before you can commit." echo "The problem count was $results" echo "==========================================================" failed=1 fi fi done exit $failed