#!/usr/bin/env bash

# Half-ORM prepare-commit-msg hook
# Automatically appends ticket reference (#N) to commit messages
# when on ho-patch/{N}-... branches
# Generated by half_orm_dev

COMMIT_MSG_FILE=$1

# Get current branch
CURRENT_BRANCH=$(git symbolic-ref --short HEAD 2>/dev/null)

# Check if on ho-patch branch
if [[ "$CURRENT_BRANCH" == ho-patch/* ]]; then
    # Extract patch_id from ho-patch/{patch_id}
    PATCH_ID="${CURRENT_BRANCH#ho-patch/}"

    # Extract ticket number (first part before '-')
    TICKET_NUMBER="${PATCH_ID%%-*}"

    # Remove leading zeros for consistency
    TICKET_NUMBER=$(echo "$TICKET_NUMBER" | sed 's/^0*//')

    # Handle edge case where ticket is "0" or empty after stripping
    if [ -z "$TICKET_NUMBER" ]; then
        TICKET_NUMBER="0"
    fi

    # Check if message already contains the reference
    if ! grep -q "#$TICKET_NUMBER\b" "$COMMIT_MSG_FILE"; then
        # Append ticket reference to commit message
        echo "" >> "$COMMIT_MSG_FILE"
        echo "Refs #$TICKET_NUMBER" >> "$COMMIT_MSG_FILE"
    fi
fi

exit 0
