Модификация Husky Git hook - commit-msg hook
Итак, я хочу добавить проверку, когда я делаю фиксацию - мне нужно проверить, что сообщение фиксации не содержит определенных символов, в моем случае это символ двойной кавычки.
Этот ответ показывает мне, как это сделать: https://www.quora.com/How-do-I-create-a-Git-Hook-that-prevents-commit-messages-with-certain-characters-such-as-a-double-quote/answer/Peter-Faiman
Когда я открываю .git/hooks/commit-msg
файл, он выглядит следующим образом:
#!/bin/sh
#husky 0.13.4
command_exists () {
command -v "$1" >/dev/null 2>&1
}
load_nvm () {
export $1=$2
[ -s "$2/nvm.sh" ] && . $2/nvm.sh
command_exists nvm && [ -f .nvmrc ] && nvm use
}
has_hook_script () {
[ -f package.json ] && cat package.json | grep -q "\"$1\"[[:space:]]*:"
}
cd .
has_hook_script commitmsg || exit 0
export PATH=$PATH:/usr/local/bin:/usr/local
load_nvm BREW_NVM_DIR /usr/local/opt/nvm
load_nvm NVM_DIR /Users/alexamil/.nvm
command_exists npm || {
echo >&2 "> husky - Can't find npm in PATH. Skipping commitmsg script in package.json"
exit 0
}
echo
echo "> husky - npm run -s commitmsg"
echo "> husky - node `node -v`"
echo
export GIT_PARAMS="$*"
npm run -s commitmsg || {
echo
echo "> husky - commit-msg hook failed (add --no-verify to bypass)"
echo "> husky - to debug, use 'npm run commitmsg'"
exit 1
}
там много вещей, которые я не понимаю - как Хаски стал де-факто обработчиком git hook?
Во всяком случае, я думаю, что я могу изменить это на это:
#!/bin/sh
#husky 0.13.4
### >>>>> I have added this next section:
if grep -q '"' "$1"; then
echo 'Do not use double quotes in commit messages. Ask Alex.'
exit 1
fi
command_exists () {
command -v "$1" >/dev/null 2>&1
}
load_nvm () {
export $1=$2
[ -s "$2/nvm.sh" ] && . $2/nvm.sh
command_exists nvm && [ -f .nvmrc ] && nvm use
}
has_hook_script () {
[ -f package.json ] && cat package.json | grep -q "\"$1\"[[:space:]]*:"
}
cd .
has_hook_script commitmsg || exit 0
export PATH=$PATH:/usr/local/bin:/usr/local
load_nvm BREW_NVM_DIR /usr/local/opt/nvm
load_nvm NVM_DIR /Users/alexamil/.nvm
command_exists npm || {
echo >&2 "> husky - Can't find npm in PATH. Skipping commitmsg script in package.json"
exit 0
}
echo
echo "> husky - npm run -s commitmsg"
echo "> husky - node `node -v`"
echo
export GIT_PARAMS="$*"
npm run -s commitmsg || {
echo
echo "> husky - commit-msg hook failed (add --no-verify to bypass)"
echo "> husky - to debug, use 'npm run commitmsg'"
exit 1
}
что я добавил правильно? Или есть лучший способ сделать это, используя Husky?