util/lint: Update tools that use git to use a library

Each of the tools that used git had similar functionality. This combines
all of that into a single script that gets sourced by each.  This makes
maintenance much easier.

By doing this and updating each of the scripts to do the correct thing
if the script isn't being run in a git repository, it makes them work
much better for the releases, which are just released as a tarball,
without any attached git repository.

Change-Id: I61ba1cc4f7205e0d4baf993588bbc774120405cb
Signed-off-by: Martin Roth <martin@coreboot.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64973
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
This commit is contained in:
Martin Roth
2022-06-03 00:06:57 -06:00
committed by Martin L Roth
parent 7726a7f272
commit d81debd946
23 changed files with 273 additions and 152 deletions

View File

@ -4,22 +4,21 @@
# DESCR: Verify that the word 'coreboot' is lowercase
LC_ALL=C export LC_ALL
LINTDIR="$(
cd -- "$(dirname "$0")" > /dev/null 2>&1 || return
pwd -P
)"
# shellcheck source=helper_functions.sh
. "${LINTDIR}/helper_functions.sh"
EXCLUDE='^3rdparty/\|util/crossgcc/xgcc\|Binary file\|coreboot\|COREBOOT\|CorebootPayload\|CorebootModule\|minnowboard.org/Coreboot\|.*\.patch$\|CorebootBdsLib\|^payloads/external'
# Use git grep if the code is in a git repo, otherwise use grep.
if [ -n "$(command -v git)" ] && \
[ "$(git rev-parse --is-inside-work-tree 2>/dev/null)" = "true" ]
then
GREP_FILES="git grep -in"
# Check last commit message
if [ -n "$(git log -n 1 | grep -i 'coreboot' | grep -v "$EXCLUDE" )" ]; then
# # Check last commit message if the code is in a git repo
if [ "${IN_GIT_TREE}" -eq 1 ]; then
if [ -n "$(${GIT} log -n 1 | grep -i 'coreboot' | grep -v "$EXCLUDE" )" ]; then
echo "'coreboot' should be lowercase in commit message"
fi
else
GREP_FILES="grep -rin"
fi
${GREP_FILES} "coreboot" | grep -v "$EXCLUDE";
${GREP_FILES} -in "coreboot" | grep -v "$EXCLUDE";