summaryrefslogtreecommitdiffstats
path: root/util/lint/helper_functions.sh
diff options
context:
space:
mode:
authorFelix Singer <felixsinger@posteo.net>2022-11-28 16:22:06 +0100
committerFelix Singer <felixsinger@posteo.net>2022-12-02 00:39:45 +0000
commit748575abb2dbd93a7f4c87ca10887b9d72ac6a37 (patch)
tree92c3fe19167e69f9f69bbf21cc7a2df495e6946d /util/lint/helper_functions.sh
parentc2af789c5ea5821f61fac5532d81e94742e0e00b (diff)
downloadflashrom-748575abb2dbd93a7f4c87ca10887b9d72ac6a37.tar.gz
flashrom-748575abb2dbd93a7f4c87ca10887b9d72ac6a37.tar.bz2
flashrom-748575abb2dbd93a7f4c87ca10887b9d72ac6a37.zip
util/lint: Introduce linter for git sign-off-by line
For compliance and to check if the commit message matches the development guidelines, add a linter checking for the sign-off-by line in the commit message. Also, hook it up to the test_build.sh script which is used for CI builds. These scripts were copied from the coreboot repository and were adjusted so that they work for flashrom. Change-Id: I03f1827803f8492d60a0a44174d5822c2265bfcb Signed-off-by: Felix Singer <felixsinger@posteo.net> Reviewed-on: https://review.coreboot.org/c/flashrom/+/70079 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
Diffstat (limited to 'util/lint/helper_functions.sh')
-rw-r--r--util/lint/helper_functions.sh45
1 files changed, 45 insertions, 0 deletions
diff --git a/util/lint/helper_functions.sh b/util/lint/helper_functions.sh
new file mode 100644
index 000000000..7abdab861
--- /dev/null
+++ b/util/lint/helper_functions.sh
@@ -0,0 +1,45 @@
+#!/usr/bin/env sh
+#
+# SPDX-License-Identifier: GPL-2.0-only
+
+# This file is sourced by the linters so that each one doesn't have to
+# specify these routines individually
+
+LC_ALL=C export LC_ALL
+
+if [ -z "$GIT" ]; then
+ GIT="$(command -v git)"
+else
+ # If git is specified, Do a basic check that it runs and seems like
+ # it's actually git
+ if ! "${GIT}" --version | grep -q git; then
+ echo "Error: ${GIT} does not seem to be valid."
+ exit 1;
+ fi
+fi
+
+if [ "$(${GIT} rev-parse --is-inside-work-tree 2>/dev/null)" = "true" ]; then
+ IN_GIT_TREE=1
+else
+ IN_GIT_TREE=0
+fi
+
+if [ "${IN_GIT_TREE}" -eq 1 ] && [ -z "${GIT}" ]; then
+ echo "This test needs git to run. Please install it, then run this test again."
+ exit 1
+fi
+
+# Use git ls-files if the code is in a git repo, otherwise use find.
+if [ "${IN_GIT_TREE}" -eq 1 ]; then
+ FIND_FILES="${GIT} ls-files"
+else
+ FIND_FILES="find "
+ FINDOPTS="-type f"
+fi
+
+# Use git grep if the code is in a git repo, otherwise use grep.
+if [ "${IN_GIT_TREE}" -eq 1 ]; then
+ GREP_FILES="${GIT} grep"
+else
+ GREP_FILES="grep -r"
+fi