#!/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 # # https://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"