Commit 3e02c971 by Marcus Shawcroft Committed by Tianqi Chen

Improve task_lint.sh robustness (#2711)

* [SCRIPT] Refactor grep for multiple patterns

Tidy up the use of grep.  Use -E rather than run multiple grep
instances.

* [SCRIPT] Refactor grep use in pipeline.

Prefer to use stdin redirection rather than create a pipeline.

* [SCRIPT] Refactor placement and cleanup of temporary files.

Place temporary files in the conventional /tmp location. Avoid
poisoning file name space by using $$. Ensure the temporary files get
cleaned up, even when the script fails / exits early.

* [SCRIPT] Improve robustness of task_lint.sh error handling.

Ensure script failures are caught and propagated.  Rather than trying
to explicitly catch and propagate failures with explicit "|| exit"
annotations, use the "set -e" idom from docker/install scripts and
have the shell catch and propagate errors in the general case and
special case the grep instances where non zero exit is permitted and
should be ignored.
parent 236d7ef0
#!/bin/bash
set -e
set -u
set -o pipefail
cleanup()
{
rm -rf /tmp/$$.*
}
trap cleanup 0
echo "Check codestyle of c++ code..."
make cpplint || exit -1
make cpplint
echo "Check codestyle of python code..."
make pylint || exit -1
make pylint
echo "Check codestyle of jni code..."
make jnilint || exit -1
make jnilint
echo "Check documentations of c++ code..."
make doc 2>log.txt
(cat log.txt| grep -v ENABLE_PREPROCESSING |grep -v "unsupported tag") > logclean.txt
make doc 2>/tmp/$$.log.txt
grep -v -E "ENABLE_PREPROCESSING|unsupported tag" < /tmp/$$.log.txt > /tmp/$$.logclean.txt || true
echo "---------Error Log----------"
cat logclean.txt
cat /tmp/$$.logclean.txt
echo "----------------------------"
(cat logclean.txt|grep warning) && exit -1
(cat logclean.txt|grep error) && exit -1
rm logclean.txt
rm log.txt
grep -E "warning|error" < /tmp/$$.logclean.txt || true
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment