From de2c6df2003816b6682f94fde095123ca3b62d6f Mon Sep 17 00:00:00 2001 From: Wenzel Jakob Date: Tue, 13 Dec 2016 00:17:29 +0100 Subject: [PATCH] check-style.sh: check for accidentally committed CRLF line endings --- tools/check-style.sh | 46 +++++++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/tools/check-style.sh b/tools/check-style.sh index 44f4a0ca5..b87cb16e6 100755 --- a/tools/check-style.sh +++ b/tools/check-style.sh @@ -5,11 +5,12 @@ # This script currently checks for # # 1. use of tabs instead of spaces -# 2. trailing spaces -# 3. missing space between keyword and parenthesis, e.g.: for(, if(, while( -# 4. opening brace on its own line. It should always be on the same line as the -# if/while/for/do statment. +# 2. MSDOS-style CRLF endings +# 3. trailing spaces +# 4. missing space between keyword and parenthesis, e.g.: for(, if(, while( # 5. Missing space between right parenthesis and brace, e.g. 'for (...){' +# 6. opening brace on its own line. It should always be on the same line as the +# if/while/for/do statment. # # Invoke as: tools/check-style.sh # @@ -29,6 +30,19 @@ while read -u 3 f; do echo " $f" done +found= +# The mt=41 sets a red background for matched MS-DOS CRLF line endings +exec 3< <(GREP_COLORS='mt=41' grep -IUlr $'\r' include/ tests/*.{cpp,py,h} docs/*.rst --color=always) +while read -u 3 f; do + if [ -z "$found" ]; then + echo -e '\e[31m\e[01mError: found CRLF characters in the following files:\e[0m' + found=1 + errors=1 + fi + + echo " $f" +done + found= # The mt=41 sets a red background for matched trailing spaces exec 3< <(GREP_COLORS='mt=41' grep '\s\+$' include/ tests/*.{cpp,py,h} docs/*.rst -rn --color=always) @@ -42,6 +56,18 @@ while read -u 3 f; do echo " $f" done +found= +exec 3< <(grep '\<\(if\|for\|while\|catch\)(\|){' include/ tests/*.{cpp,py,h} -rn --color=always) +while read -u 3 line; do + if [ -z "$found" ]; then + echo -e '\e[31m\e[01mError: found the following coding style problems:\e[0m' + found=1 + errors=1 + fi + + echo " $line" +done + found= exec 3< <(GREP_COLORS='mt=41' grep '^\s*{\s*$' include/ docs/*.rst -rn --color=always) while read -u 3 f; do @@ -54,16 +80,4 @@ while read -u 3 f; do echo " $f" done -found= -exec 3< <(grep '\<\(if\|for\|while\)(\|){' include/ tests/*.{cpp,py,h} -rn --color=always) -while read -u 3 line; do - if [ -z "$found" ]; then - echo -e '\e[31m\e[01mError: found the following coding style problems:\e[0m' - found=1 - errors=1 - fi - - echo " $line" -done - exit $errors