Dot_Files/.git-global/template/hooks/commit-msg.sample

27 lines
719 B
Bash
Executable File

#!/bin/bash
COMMIT_REGEX='\[\ .*\ \] .*'
read -r -d '' ERROR_MESSAGE << END_OF_VAR
Aborting commit. Commit message did not match commit regex: \"${COMMIT_REGEX}"
Template:
[ Modified Module/Feature ] Short Message (required)
Example Valid Commit Message:
[ Neovim ] Updated Packer Lazy Loading for Treesitter for BufEnter Events
END_OF_VAR
COMMIT_MESSAGE="$(cat "${1}")"
IFS=$'\n' read -ra COMMIT_MESSAGE_SPLIT -d $'\0' <<< "${COMMIT_MESSAGE}"
if (( "${#COMMIT_MESSAGE_SPLIT[0]}" > 72 )); then
echo "Your first line commit is too long, max 72 characters, got ${#COMMIT_MESSAGE_SPLIT[0]}"
exit 1
fi
if [[ ! "$(cat "${1}")" =~ ${COMMIT_REGEX} ]]; then
echo "${ERROR_MESSAGE}" >&2
exit 1
fi