| #!/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/coreboot-configurator\|\ |
| ^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 |