summaryrefslogtreecommitdiffstats
path: root/scripts/hooks/applypatch-msg.check-signed-off.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/hooks/applypatch-msg.check-signed-off.sh')
-rw-r--r--scripts/hooks/applypatch-msg.check-signed-off.sh33
1 files changed, 33 insertions, 0 deletions
diff --git a/scripts/hooks/applypatch-msg.check-signed-off.sh b/scripts/hooks/applypatch-msg.check-signed-off.sh
new file mode 100644
index 00000000..3cf81abb
--- /dev/null
+++ b/scripts/hooks/applypatch-msg.check-signed-off.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env bash
+#
+# An hook script to check the commit log message taken by
+# applypatch from an e-mail message for proper "Signed-off-by" line(s).
+#
+# To enable this hook, copy this file to ".git/hooks/applypatch-msg" and make it
+# executable.
+
+#
+# This hook is used when applying patches which are send via mail, to verify the
+# Signed-off-by line is in the commit message.
+#
+
+. git-sh-setup
+
+RED='\e[0;31m' # Red
+YELLOW='\e[0;33m' # Yellow
+NORMAL='\e[0m' # Text Reset
+
+warn() {
+ echo -e >&2 "${YELLOW}$*${DEFAULT}"
+}
+
+abort() {
+ echo -e >&2 "${RED}$*${DEFAULT}"
+ exit 1
+}
+
+headline=$(head -n 1 $1 | wc -c)
+[[ $headline -gt 50 ]] && warn "Headline of patch longer than 50 chars"
+
+grep "^Signed-off-by" $1 >/dev/null 2>/dev/null && abort "No Signed-off-by line"
+