#!/usr/bin/env bash
#==========================================================================
#
#   Copyright NumFOCUS
#
#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#          http://www.apache.org/licenses/LICENSE-2.0.txt
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.
#
#==========================================================================*/

egrep-q() {
  egrep "$@" >/dev/null 2>/dev/null
}

# First argument is file containing commit message.
commit_msg="$1"

# Check for our extra instructions.
egrep-q "^# Start ITK commit messages" -- "$commit_msg" && return 0

# Insert our extra instructions.
commit_msg_tmp="$commit_msg.$$"
instructions='#\
# Start ITK commit messages with a standard prefix (and a space):\
#   BUG:    - fix for runtime crash or incorrect result\
#   COMP:   - compiler error or warning fix\
#   DOC:    - documentation change\
#   ENH:    - new functionality\
#   PERF:   - performance improvement\
#   STYLE:  - no logic impact (indentation, comments)\
#   WIP:    - Work In Progress not ready for merge\
#
# The first line of the commit message should preferably be 72 characters
# or less; the maximum allowed is 78 characters.
#
# Follow the first line commit summary with an empty line, then a detailed
# description in one or more paragraphs.
#
# To have an automatic link created between this patch set\
# and the issue referenced at issues.itk.org, simply\
# add #NNN somewhere in the commit message.
#' &&
sed '/^# On branch.*$/ a\
'"$instructions"'
/^# Not currently on any branch.*$/ a\
'"$instructions"'
' "$commit_msg" > "$commit_msg_tmp" &&
mv "$commit_msg_tmp" "$commit_msg"
