Модификация 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?

0 ответов

Другие вопросы по тегам