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.
This commit is contained in:
Jason Rhinelander 2016-08-29 19:04:12 -04:00
parent d9b3db3e64
commit 5a3570c47c

View File

@ -9,7 +9,8 @@
errors=0 errors=0
IFS=$'\n' IFS=$'\n'
found= 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 if [ -z "$found" ]; then
echo -e '\e[31m\e[01mError: found tabs instead of spaces in the following files:\e[0m' echo -e '\e[31m\e[01mError: found tabs instead of spaces in the following files:\e[0m'
found=1 found=1
@ -20,7 +21,8 @@ grep $'\t' include/ tests/ docs/*.rst -rl | while read f; do
done done
found= 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 if [ -z "$found" ]; then
echo -e '\e[31m\e[01mError: found the following coding style problems:\e[0m' echo -e '\e[31m\e[01mError: found the following coding style problems:\e[0m'
found=1 found=1