summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonald G. Minnich <rminnich@gmail.com>2018-08-01 07:19:31 -0700
committerRonald G. Minnich <rminnich@gmail.com>2018-08-01 18:03:26 +0000
commitff22b6aca6daba2bf20b3eebd5299d03f906674c (patch)
tree2117c354989afce2458fb54d25423df0840f1db0
parentb9c049a3680f82fd62637f9e4bae1d5ef67fd504 (diff)
downloadcoreboot-ff22b6aca6daba2bf20b3eebd5299d03f906674c.tar.xz
make: add clang-format prepare-commit-msg hook
To install this hook, run make install-git-commit-clangfmt This will install a pre-commit-msg hook that runs clang-format on all .c and .h files that are staged. It will add a clang-formatted-by: <git username> line to the commit message to indicate that clang-format was run on the files and that further processing of them is not needed. Change-Id: I1773f55b5b4677dad8f4bea017b6328fd93df20c Signed-off-by: Ronald G. Minnich <rminnich@gmail.com> Reviewed-on: https://review.coreboot.org/27779 Reviewed-by: Patrick Georgi <pgeorgi@google.com> Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--Makefile.inc3
-rwxr-xr-xutil/scripts/prepare-commit-msg.clang-format13
2 files changed, 16 insertions, 0 deletions
diff --git a/Makefile.inc b/Makefile.inc
index fe325048f8..aa93222920 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -597,6 +597,9 @@ update:
gitconfig:
util/gitconfig/gitconfig.sh "$(MAKE)"
+install-git-commit-clangfmt:
+ cp util/scripts/prepare-commit-msg.clang-format .git/hooks/prepare-commit-msg
+
include util/crossgcc/Makefile.inc
.PHONY: tools
diff --git a/util/scripts/prepare-commit-msg.clang-format b/util/scripts/prepare-commit-msg.clang-format
new file mode 100755
index 0000000000..7033f3cc07
--- /dev/null
+++ b/util/scripts/prepare-commit-msg.clang-format
@@ -0,0 +1,13 @@
+#!/bin/bash
+files=`git diff --cached --name-only | grep '\.[ch]$'`
+if [ -z "$files" ]; then
+ exit 0
+fi
+# This has to be set here; otherwise a grep error seems to cause
+# us to exit with non-zero status.
+set -e
+clang-format -i $files
+git add $files
+u=`git config user.name`
+m="clang-formatted-by: $u"
+echo $m >> $1