Git hook commit-msg para garantizar que el post de confirmación contenga una cadena que se ajuste a una expresión regular

Estoy intentando hacer que bash script se use como un gancho de git commit-msg. Básicamente, quiero asegurarme de que el post de confirmación contenga una cadena que coincida con la expresión regular. Mi expresión regular es correcta, pero no estoy seguro de cómo comprobar si el post contenido en .git/COMMIT_EDITMSG coincide con la expresión regular.

 #!/bin/sh # # This hook verifies that the commit message contains a reference to a tfs item RED=$(tput setaf 1) NORMAL=$(tput sgr0) # Regex to validate a string contains "#" followed by 4 or 5 digits anywhere in the commit message regex="#[0-9]{4,5}($|[^0-9])" # I NEED TO FIGURE OUT HOW TO READ THE CONTENTS OF THIS FILE AND ENSURE IT MATCHES THE REGEX echo "MSG = $1" # This prints "MSG = .git/COMMIT_EDITMSG" # If the commit message does not match the regex if ! [[ $1 =~ $regex ]]; then echo "${RED}ERROR - Missing tfs item in commmit message.$NORMAL" exit 1 else echo "MESSAGE IS GOOD?" fi exit 0 

Lo descubrí con esto:

 #!/bin/sh # # This hook verifies that the commit message contains a reference to a tfs item RED=$(tput setaf 1) NORMAL=$(tput sgr0) # Regex to validate a string contains "#" followed by 4 or 5 digits anywhere in the commit message regex="#[0-9]{4,5}($|[^0-9])" file=`cat $1` # The file that contains the commit message # If the commit message does not match the regex if ! [[ $file =~ $regex ]]; then echo "${RED}ERROR - Missing tfs item in commmit message.$NORMAL" exit 1 else echo "MESSAGE IS GOOD?" fi exit 0