From f2f482edbe44b4c57e93a7bbb119c60d0f1a3c71 Mon Sep 17 00:00:00 2001 From: Stephen Rothwell Date: Fri, 28 Jul 2017 01:41:29 +1000 Subject: [PATCH] add the check_commits script --- check_commits | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 check_commits diff --git a/check_commits b/check_commits new file mode 100755 index 0000000..d82c18a --- /dev/null +++ b/check_commits @@ -0,0 +1,40 @@ +#!/bin/bash + +if [ "$#" -lt 1 ]; then + printf "Usage: %s \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 -- 2.39.2