#!/bin/bash #source: https://medium.com/better-programming/how-to-automatically-add-the-ticket-number-in-git-commit-message-bda5426ded05 FILE=$1 MESSAGE=$(cat $FILE) BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD) TITLE_TAG="" BRANCH_REGEXP="^(\w+/)?(\w+[-_])?([0-9]+)[-_](.*)$" if [[ ${BRANCH_NAME} =~ ${BRANCH_REGEXP} ]]; then TICKET="[${BASH_REMATCH[2]}${BASH_REMATCH[3]}]" MESSAGE_TEXT="${BASH_REMATCH[4]//[-_]/ }" if [[ ${MESSAGE} == "${TICKET}"* ]]; then exit 0 fi NEW_TITLE="${TICKET} ${MESSAGE_TEXT}" echo "FILE:$FILE" echo "TITLE_TAG:$TITLE_TAG" FROM_TEMPLATE=$(cat ${FILE} | grep "${TITLE_TAG}") echo "FROM_TEMPLATE: '${FROM_TEMPLATE}'" if [[ -n $( cat $FILE | grep "${TITLE_TAG}" ) ]]; then sed -i "s:${TITLE_TAG}:${NEW_TITLE}:" $FILE else echo -e "$TICKET $MESSAGE_TEXT \n$MESSAGE" > $FILE fi else echo "$MESSAGE" > $FILE fi