#!/bin/sh # This file is part of the coreboot project. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # 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\|\ ^src/vendorcode\|\ ^Documentation" opts="--max-line-length 96" # default: test src and util if [ "$1" = "" ]; then INCLUDED_DIRS="src util" # 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