Às vezes, queremos ter a opção de ativar / desativar alguns ganchos git. Podemos criar if
para cada um, mas devemos estar SECOS mesmo nos ganchos. Então, minha solução é:
#!/bin/sh
ROOT=$(git rev-parse --show-toplevel)
function hook {
value=$(git config hooks.$1)
if [ "$value" = "true" ]; then
shift 1
eval $* || exit 1
fi
}
hook rubocop rubocop -R
hook tests $ROOT/bin/rake test:all # check https://github.com/rails/rails/pull/12958
IMHO, é simplesmente o suficiente, mas também poderoso. Divirtam-se.