Simplifique seus ganchos configuráveis

Às vezes, queremos ter a opção de ativar / desativar alguns ganchos git. Podemos criar ifpara 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.