Skip to content

Instantly share code, notes, and snippets.

@gustavocoleta
Created February 29, 2024 17:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gustavocoleta/7735f4b499b0057d5a7e1804c1422120 to your computer and use it in GitHub Desktop.
Save gustavocoleta/7735f4b499b0057d5a7e1804c1422120 to your computer and use it in GitHub Desktop.
prepare-commit-msg
#!/bin/bash
# Include any branches for which you wish to disable this script
BRANCHES_TO_SKIP=(main)
# Get the current branch name and check if it is excluded
BRANCH_NAME=$(git symbolic-ref --short HEAD)
BRANCH_EXCLUDED=$(printf "%s\n" "${BRANCHES_TO_SKIP[@]}" | grep -c "^$BRANCH_NAME$")
# Trim it down to get the parts we're interested in with a comment # at line start
TRIMMED=$(echo \# $BRANCH_NAME | sed -e 's:^\([^-]*-[^-]*\)-.*:\1:' -e \
'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/')
# If it isn't excluded, preprend the trimmed branch identifier to the given message
if [ -n "$BRANCH_NAME" ] && ! [[ $BRANCH_EXCLUDED -eq 1 ]]; then
# '-m' arg is passed, the message is cleaned to use informed message only
if [[ $2 == *"m"* ]]; then
TRIMMED=''
fi
sed -i.bak -e "1s/^/$TRIMMED /" $1
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment