summaryrefslogtreecommitdiff
path: root/util/lint/lint-007-checkpatch
blob: 7a76878f60b035ad1055ccf7536ffc653628c9d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env sh
#
# SPDX-License-Identifier: GPL-2.0-only

# DESCR: Checkpatch on .c, .h, & Kconfig files in the tree

LC_ALL=C export LC_ALL

# GNU BRE syntax list of files to examine
INCLUDED_FILES='.*\.[ch]\|Kconfig.*$'

EXCLUDED_DIRS="^payloads/libpayload/util/kconfig\|\
^payloads/libpayload/curses/PDCurses\|\
^util/crossgcc/patches\|\
^util/inteltool\|\
^util/kconfig\|\
^util/superiotool\|\
^Documentation"

opts="--max-line-length 96"

# default: test src and util
if [ "$1" = "" ]; then
	INCLUDED_DIRS="src util tests"
# special mode: take diff from stdin, but exclude the dirs
elif [ "$1" = "diff" ]; then
	args=$( echo $EXCLUDED_DIRS | \
		sed -e 's,\\|, ,g' -e 's,\^,--exclude=,g' )
	util/lint/checkpatch.pl --quiet --no-signoff $opts $args -
	exit $?
# Space separated list of directories to test
else
	INCLUDED_DIRS="$1"
fi

# We want word splitting here, so disable the shellcheck warnings
# shellcheck disable=SC2046,SC2086
FILELIST=$( git ls-files $INCLUDED_DIRS | \
		grep $INCLUDED_FILES | \
		grep -v $EXCLUDED_DIRS )

for FILE in $FILELIST; do
	util/lint/checkpatch.pl --show-types --file --quiet $opts "$FILE"
done