misc: add check_commit_msg.sh script
Type: feature Change-Id: I5e04991afd7500673db121e4529275e9aff15e65 Signed-off-by: Damjan Marion <damarion@cisco.com>
This commit is contained in:
Damjan Marion
committed by
Florin Coras
parent
c83311ddff
commit
26ce6ca1fe
50
extras/scripts/check_commit_msg.sh
Executable file
50
extras/scripts/check_commit_msg.sh
Executable file
@ -0,0 +1,50 @@
|
||||
#/bin/env bash
|
||||
|
||||
KNOWN_FEATURES=$(cat MAINTAINERS | sed -ne 's/^I:[[:space:]]*//p')
|
||||
FEATURES=$(git show -s --format=%s --no-color | sed -e 's/\(.*\):.*/\1/')
|
||||
KNOWN_TYPES="fix refactor style docs test make"
|
||||
TYPE=$(git show -s --format=%b --no-color | sed -ne 's/^Type:[[:space:]]*//p')
|
||||
ERR="=============================== ERROR ==============================="
|
||||
|
||||
# Chech that subject line contains at least one feature id
|
||||
if [ $(echo ${FEATURES} | wc -w) -eq 0 ]; then
|
||||
echo $ERR
|
||||
echo "git commit 'Subject:' line must contain at least one known feature id."
|
||||
echo "feature id(s) must be listed before ':' and space delimited "
|
||||
echo "if more then one is listed."
|
||||
echo "Please reffer to MAINTAINERS file (I: lines) for known feature ids."
|
||||
echo $ERR
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check that feature ids in subject line are known
|
||||
for i in ${FEATURES}; do
|
||||
is_known=false
|
||||
for j in ${KNOWN_FEATURES}; do
|
||||
[ "${i}" = "${j}" ] && is_known=true
|
||||
done
|
||||
if [ ${is_known} = "false" ] ; then
|
||||
echo $ERR
|
||||
echo "Unknown feature '${i}' in commit 'Subject:' line."
|
||||
echo "Feature must exist in MAINTAINERS file. If this commit intruduces "
|
||||
echo "new feature, then this commit must add new entry into the "
|
||||
echo "MAINTAINERS file."
|
||||
echo $ERR
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# Check that Message body contains valid Type: entry
|
||||
is_known=false
|
||||
for i in ${KNOWN_TYPES}; do
|
||||
[ "${i}" = "${TYPE}" ] && is_known=true
|
||||
done
|
||||
if [ ${is_known} = "false" ] ; then
|
||||
echo $ERR
|
||||
echo "Unknown commit type '${TYPE}' in commit message body."
|
||||
echo "Commit message must contain known 'Type:' entry."
|
||||
echo "Known types are: ${KNOWN_TYPES}"
|
||||
echo $ERR
|
||||
exit 1
|
||||
fi
|
||||
|
Reference in New Issue
Block a user