#!/bin/sh
# This file is part of the coreboot project.
#
# Copyright (C) 2011 Patrick Georgi <patrick@georgi-clan.de>
#
# 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: Check for superfluous whitespace in the tree

LC_ALL=C export LC_ALL
EXCLUDELIST='^src/vendorcode/|^util/kconfig/|^util/nvidia/cbootimage$|COPYING|LICENSE|README|_shipped$|\.patch$|\.bin$|\.hex$|\.jpg$|\.ttf$|\.woff$|\.png$|\.eot$|\.vbt$|\.ico$'
INCLUDELIST="src util payloads Makefile* toolchain.inc"

# shellcheck disable=SC2086,SC2046
if uname | grep -qi "linux"; then
	grep -l "[[:space:]][[:space:]]*$" \
		$(git ls-files $INCLUDELIST | \
			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
	git ls-files $INCLUDELIST | \
		grep -Ev "($EXCLUDELIST)" | \
		xargs -I % \
			grep -l "[[:space:]][[:space:]]*$" % | \
			sed -e "s,^.*$,File & has lines ending with whitespace.,"
fi
