util/lint: Fix linting outside of git repos

If the coreboot code is not in a git repository, the linters switch
from using `git ls-files` to find.  This requires some changes to
prevent the linters from looking at the wrong files which are
automatically excluded by git.

Signed-off-by: Martin Roth <gaumless@gmail.com>
Change-Id: I81d138760c29a7c476280bb9d963f6be99c75d6d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/68475
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
Martin Roth 2022-10-17 07:53:16 -06:00 committed by Felix Held
parent 60bdb327c6
commit 95b5b025a0
5 changed files with 12 additions and 7 deletions

View File

@ -33,7 +33,8 @@ fi
if [ "${IN_GIT_TREE}" -eq 1 ]; then
FIND_FILES="${GIT} ls-files"
else
FIND_FILES="find src"
FIND_FILES="find "
FINDOPTS="-type f"
fi
# Use git grep if the code is in a git repo, otherwise use grep.

View File

@ -7,7 +7,7 @@
PIDS=""
DIRS="src/acpi \
src/cpu/armltd src/cpu/qemu-power8 src/cpu/qemu-x86 \
src/drivers/gic src/drivers/ti \
src/drivers/ti \
src/ec/purism \
src/include/boot src/include/superio src/include/sys \
src/mainboard/adlink src/mainboard/purism src/mainboard/ti \

View File

@ -14,7 +14,7 @@ LINTDIR="$(
PIDS=""
INCLUDED_DIRS_AND_FILES='util/* src/* payloads/* configs/* Makefile *.inc'
EXCLUDED_DIRS='src/vendorcode/\|cbfstool/lzma/\|cbfstool/lz4/\|Documentation/\|build/\|3rdparty/\|\.git/\|coreboot-builds/\|util/nvidia/cbootimage/'
EXCLUDED_DIRS='src/vendorcode/\|cbfstool/lzma/\|cbfstool/lz4/\|Documentation/\|build/\|3rdparty/\|\.git/\|coreboot-builds/\|util/nvidia/cbootimage/\|^util/goswid/vendor'
EXCLUDED_FILES='\.gif$\|\.jpg$\|\.cksum$\|\.bin$\|\.vbt$\|\.hex$\|\.ico$\|\.o$\|\.bz2$\|\.xz$\|^.tmpconfig\|\.pyc$\|_shipped$\|sha256$\|\.png$\|\.patch$'
HAVE_FILE=$(command -v file 1>/dev/null 2>&1; echo $?)

View File

@ -11,19 +11,19 @@ LINTDIR="$(
# shellcheck source=helper_functions.sh
. "${LINTDIR}/helper_functions.sh"
EXCLUDELIST='^src/vendorcode/|^util/kconfig/|^util/nvidia/cbootimage$|^util/goswid$|COPYING|LICENSE|README|_shipped$|\.patch$|\.bin$|\.hex$|\.jpg$|\.gif$|\.ttf$|\.woff$|\.png$|\.eot$|\.vbt$|\.ico$|\.md$'
EXCLUDELIST='^src/vendorcode/|^util/kconfig/|^util/nvidia/cbootimage/|^util/goswid/|__pycache__|COPYING|LICENSE|README|_shipped$|\.patch$|\.bin$|\.hex$|\.jpg$|\.gif$|\.ttf$|\.woff$|\.png$|\.eot$|\.vbt$|\.ico$|\.md$'
INCLUDELIST="src util payloads Makefile* toolchain.inc tests"
# shellcheck disable=SC2086,SC2046
if uname | grep -qi "linux"; then
grep -n -H "[[:space:]][[:space:]]*$" \
$(${FIND_FILES} $INCLUDELIST | \
$(${FIND_FILES} ${INCLUDELIST} ${FINDOPTS} | \
grep -Ev "($EXCLUDELIST)" ) | \
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
${FIND_FILES} $INCLUDELIST | \
${FIND_FILES} ${INCLUDELIST} ${FINDOPTS}| \
grep -Ev "($EXCLUDELIST)" | \
xargs -I % \
grep -l "[[:space:]][[:space:]]*$" % | \

View File

@ -28,7 +28,11 @@ HEADER_EXCLUDED="\
_shipped$|\
^util/scripts/no-fsf-addresses.sh|\
^util/lint/lint-000-license-headers|\
^util/lint/lint-stable-009-old-licenses\
^util/lint/lint-stable-009-old-licenses|\
^util/nvidia/cbootimage|\
^3rdparty|\
__pycache__|\
^payloads/external\
"
if [ -z "$HEADER_DIRS" ]; then