#!/bin/sh
# This file is part of the coreboot project.
#
# Copyright 2015 Google Inc.
#
# 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/kconfig\|\
^src/vendorcode\|\
^Documentation"

# Space separated list of directories to test
if [ "$1" = "" ]; then
	INCLUDED_DIRS="src util"
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 "$FILE"
done