]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/pmdk/utils/check-commit.sh
import ceph 16.2.7
[ceph.git] / ceph / src / pmdk / utils / check-commit.sh
diff --git a/ceph/src/pmdk/utils/check-commit.sh b/ceph/src/pmdk/utils/check-commit.sh
new file mode 100755 (executable)
index 0000000..3985e40
--- /dev/null
@@ -0,0 +1,50 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright 2016-2020, Intel Corporation
+
+#
+# Used to check whether all the commit messages in a pull request
+# follow the GIT/PMDK guidelines.
+#
+# usage: ./check-commit.sh commit
+#
+
+if [ -z "$1" ]; then
+       echo "Usage: check-commit.sh commit-id"
+       exit 1
+fi
+
+echo "Checking $1"
+
+subject=$(git log --format="%s" -n 1 $1)
+
+if [[ $subject =~ ^Merge.* ]]; then
+       # skip
+       exit 0
+fi
+
+if [[ $subject =~ ^Revert.* ]]; then
+       # skip
+       exit 0
+fi
+
+# valid area names
+AREAS="pmem\|pmem2\|rpmem\|log\|blk\|obj\|pool\|test\|benchmark\|examples\|doc\|core\|common\|daxio\|pmreorder"
+
+prefix=$(echo $subject | sed -n "s/^\($AREAS\)\:.*/\1/p")
+
+if [ "$prefix" = "" ]; then
+       echo "FAIL: subject line in commit message does not contain valid area name"
+       echo
+       `dirname $0`/check-area.sh $1
+       exit 1
+fi
+
+commit_len=$(git log --format="%s%n%b" -n 1 $1 | wc -L)
+
+if [ $commit_len -gt 73 ]; then
+       echo "FAIL: commit message exceeds 72 chars per line (commit_len)"
+       echo
+       git log -n 1 $1 | cat
+       exit 1
+fi