From 5a3570c47cec8a0adc1ed6f1039e669cbac6689d Mon Sep 17 00:00:00 2001 From: Jason Rhinelander Date: Mon, 29 Aug 2016 19:04:12 -0400 Subject: [PATCH] Fix check-style exit status The check-style exit status wasn't being propagated properly because the loops were running in a subshell (and so the change the the `errors` variable wasn't in the active command shell). This fixes it by running the greps in subshells and the loops in the main shell. This also avoids the if(/for(/while( style check on tests/CMakeLists.txt, since it *does* have if() statements with no space that are producing error messages, but that is (acceptable) CMake style. --- tools/check-style.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/check-style.sh b/tools/check-style.sh index c5ad5f74..08b8e864 100755 --- a/tools/check-style.sh +++ b/tools/check-style.sh @@ -9,7 +9,8 @@ errors=0 IFS=$'\n' found= -grep $'\t' include/ tests/ docs/*.rst -rl | while read f; do +exec 3< <(grep $'\t' include/ tests/ docs/*.rst -rl) +while read -u 3 f; do if [ -z "$found" ]; then echo -e '\e[31m\e[01mError: found tabs instead of spaces in the following files:\e[0m' found=1 @@ -20,7 +21,8 @@ grep $'\t' include/ tests/ docs/*.rst -rl | while read f; do done found= -grep '\<\(if\|for\|while\)(' include/ tests/* -r --color=always | while read line; do +exec 3< <(grep '\<\(if\|for\|while\)(' include/ tests/*.{cpp,py,h} -r --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