]> git.ozlabs.org Git - next-scripts/commitdiff
add the check_commits script
authorStephen Rothwell <sfr@canb.auug.org.au>
Thu, 27 Jul 2017 15:41:29 +0000 (01:41 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 27 Jul 2017 15:41:29 +0000 (01:41 +1000)
check_commits [new file with mode: 0755]

diff --git a/check_commits b/check_commits
new file mode 100755 (executable)
index 0000000..d82c18a
--- /dev/null
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+if [ "$#" -lt 1 ]; then
+       printf "Usage: %s <commit range>\n", "$0" 1>&2
+       exit 1
+fi
+
+for c in $(git rev-list --no-merges "$@"); do
+       ae=$(git log -1 --format='%ae' "$c")
+       aE=$(git log -1 --format='%aE' "$c")
+       an=$(git log -1 --format='%an' "$c")
+       aN=$(git log -1 --format='%aN' "$c")
+       ce=$(git log -1 --format='%ce' "$c")
+       cE=$(git log -1 --format='%cE' "$c")
+       cn=$(git log -1 --format='%cn' "$c")
+       cN=$(git log -1 --format='%cN' "$c")
+       sob=$(git log -1 --format='%b' "$c" | grep -i 'Signed-off-by')
+
+       am=false
+       cm=false
+       grep -i -q "<$ae>" <<<"$sob" ||
+               grep -i -q "<$aE>" <<<"$sob" ||
+               grep -i -q ":[[:space:]]*$an[[:space:]]*<" <<<"$sob" ||
+               grep -i -q ":[[:space:]]*$aN[[:space:]]*<" <<<"$sob" ||
+               am=true
+       grep -i -q "<$ce>" <<<"$sob" ||
+               grep -i -q "<$cE>" <<<"$sob" ||
+               grep -i -q ":[[:space:]]*$cn[[:space:]]*<" <<<"$sob" ||
+               grep -i -q ":[[:space:]]*$cN[[:space:]]*<" <<<"$sob" ||
+               cm=true
+
+       if "$am" || "$cm"; then
+               printf "Commit %s\n" "$c"
+               "$am" && printf "\tauthor SOB missing\n"
+               "$cm" && printf "\tcommitter SOB missing\n"
+               printf "%s %s\n%s\n" "$ae" "$ce" "$sob"
+       fi
+done
+
+exit 0