Skip to content

Commit

Permalink
githooks: Create commit message template with prepare-commit-msg
Browse files Browse the repository at this point in the history
  • Loading branch information
VallariAg committed Feb 2, 2022
1 parent c47ace9 commit 06d6308
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions githooks/prepare-commit-msg
@@ -0,0 +1,41 @@
#!/usr/bin/sh
#
# An example hook script to prepare the commit log message.
# Called by "git commit" with the name of the file that has the
# commit message, followed by the description of the commit
# message's source. The hook's purpose is to edit the commit
# message file. If the hook fails with a non-zero status,
# the commit is aborted.
#
# To enable this hook, rename this file to "prepare-commit-msg".

# This hook includes three examples. The first one removes the
# "# Please enter the commit message..." help message.
#
# The second includes the output of "git diff --name-status -r"
# into the message, just before the "git status" output. It is
# commented because it doesn't cope with --amend or with squashed
# commits.
#
# The third example adds a Signed-off-by line to the message, that can
# still be edited. This is rarely a good idea.

COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2
SHA1=$3

# /usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"

if [[ -z "$COMMIT_SOURCE" ]]
then
echo "# Please enter the commit message for your changes. " > "$COMMIT_MSG_FILE"
for FILE in $(git diff --cached --name-only -r)
do
# According to files changed the commit message would start "<project_name>: <commit_message>"
# src/<project>/file.txt - "<project>:"
# file.txt - "file.txt:"
# <project>/file.txt - "<project>:"
echo "# $FILE: <commit_message>" | sed -E 's|src/+||g' | sed -r 's/(.*)(\/[a-z0-9.-]+)/\1 /' >> "$COMMIT_MSG_FILE"
done
fi

0 comments on commit 06d6308

Please sign in to comment.