#!/bin/bash
# The script below adds the branch name automatically to
# every one of your commit messages. The regular expression
# below searches for linear issue key's. The issue key will
# be extracted out of your branch name

REGEX_ISSUE_ID="[a-zA-Z0-9]+-[0-9]+"

# Find current branch name
BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)
COMMIT_MSG_FILE=$1
COMMIT_TEXT=$(cat "$COMMIT_MSG_FILE")

if [[ -z "$BRANCH_NAME" ]]; then
    echo "Commit message validation failed: no branch name!"; exit 1
fi

# Extract issue id from branch name
ISSUE_ID=$(echo "$BRANCH_NAME" | grep -o -E "$REGEX_ISSUE_ID" | head -1 | awk '{print toupper($0)}')

if [[ "$ISSUE_ID" != "DROID-"* ]]; then
  echo "Commit message validation failed: branch name should contain issue name!"; exit 1
fi

if [[ "$COMMIT_TEXT" != "DROID-"* ]]; then
  echo "$ISSUE_ID" "$COMMIT_TEXT" > "$COMMIT_MSG_FILE"
fi