2
コミットメッセージの内容を検証するcommit-msg
フックがあります。`commit-msg` gitフック内からターミナルエディタを開く方法
このチェックが失敗した場合、間違いを修正できるように私の端末エディタにコミットメッセージファイルを再度開きます。
私は次のことを確認します。
#!/usr/bin/env bash
COMMIT_MSG_FILE="$1"
# If we have a STDIN, use it, otherwise get one
if tty >/dev/null 2>&1; then
TTY=$(tty)
else
TTY=/dev/tty
fi
while true; do
# read lines from file
COMMIT_MSG_LINES=()
while IFS= read -r; do
COMMIT_MSG_LINES+=("$REPLY")
done < <(cat $COMMIT_MSG_FILE)
# validate - limit the subject to 50 characters
test "${#COMMIT_MSG_LINES[0]}" -le 50 && break;
echo -n "Validation failed. Proceed with commit [y/n]? "
read REPLY < "$TTY"
case "$REPLY" in
Y*|y*) exit 0 ;;
N*|n*) exit 1 ;;
*) $EDITOR $COMMIT_MSG_FILE; continue ;;
esac
done
YyNn
以外の応答は、エディタを再度開く必要があります。私は手動でスクリプトが正常に動作するフックを呼び出すと
Received SIGHUP or SIGTERM
ので、私は、これはフックが呼び出されるコンテキストとは何かであると仮定します。
はしかしその代わり、私は次のエラーを取得しています。
commit-msg
フックの中からエディタを開くにはどうしたらいいですか?