util/lint: Update whitespace linter for FreeBSD

On FreeBSD, this test was failing with the error:
"grep: Argument list too long"

I found that changing this to other forms takes MUCH longer, so I left
the original method mostly unchanged except for moving the include &
exclude lists into variables.

Currently, I'm setting all non-linux operating systems to use the second
version. I'll update that if I find other that other OSes support the
first.

Change-Id: I1c9281440d051dea8a8b3a3ddc04676ccea77c7a
Signed-off-by: Martin Roth <martinr@coreboot.org>
Reviewed-on: https://review.coreboot.org/28429
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
This commit is contained in:
Martin Roth 2018-09-01 14:54:33 -06:00 committed by Patrick Georgi
parent fe68ab9fd1
commit 8600893017
1 changed files with 18 additions and 2 deletions

View File

@ -15,5 +15,21 @@
# DESCR: Check for superfluous whitespace in the tree # DESCR: Check for superfluous whitespace in the tree
LC_ALL=C export LC_ALL LC_ALL=C export LC_ALL
grep -l "[[:space:]][[:space:]]*$" `git ls-files src util |egrep -v "(^3rdparty|^src/vendorcode/|^util/kconfig/|^util/nvidia/cbootimage$|\<COPYING\>|\<LICENSE\>|\<README\>|_shipped$|\.patch$|\.bin$|\.hex$|\.jpg$|\.ttf$|\.woff$|\.png$|\.eot$|\.vbt$)"` | \ EXCLUDELIST='^3rdparty|^src/vendorcode/|^util/kconfig/|^util/nvidia/cbootimage$|\<COPYING\>|\<LICENSE\>|\<README\>|_shipped$|\.patch$|\.bin$|\.hex$|\.jpg$|\.ttf$|\.woff$|\.png$|\.eot$|\.vbt$'
INCLUDELIST="src util"
# shellcheck disable=SC2086,SC2046
if uname | grep -qi "linux"; then
grep -l "[[:space:]][[:space:]]*$" \
$(git ls-files $INCLUDELIST | \
grep -Ev "($EXCLUDELIST)" ) | \
sed -e "s,^.*$,File & has lines ending with whitespace.," sed -e "s,^.*$,File & has lines ending with whitespace.,"
else
# The above form is much (100x) faster, but doesn't work
# on all systems. A for loop also works but takes 30% longer
git ls-files $INCLUDELIST | \
grep -Ev "($EXCLUDELIST)" | \
xargs -I % \
grep -l "[[:space:]][[:space:]]*$" % | \
sed -e "s,^.*$,File & has lines ending with whitespace.,"
fi