#!/usr/bin/env bash # This is a randomish md5 to identify this script # 138fd403232d2ddd5efb44317e38bf03 pushd "$(dirname "$0")" >& /dev/null HERE="$(pwd)" popd >& /dev/null retv=0 args="" ENV_PYTHON={sys_executable} SKIP_ON_MISSING_CONF={skip_on_missing_conf} if which pre-commit >& /dev/null; then exe="pre-commit" run_args="" elif "$ENV_PYTHON" -c 'import pre_commit.main' >& /dev/null; then exe="$ENV_PYTHON" run_args="-m pre_commit.main" elif python -c 'import pre_commit.main' >& /dev/null; then exe="python" run_args="-m pre_commit.main" else echo '`pre-commit` not found. Did you forget to activate your virtualenv?' exit 1 fi # Run the legacy pre-commit if it exists if [ -x "$HERE"/{hook_type}.legacy ] && ! "$HERE"/{hook_type}.legacy; then retv=1 fi CONF_FILE="$(git rev-parse --show-toplevel)/{config_file}" if [ ! -f "$CONF_FILE" ]; then if [ "$SKIP_ON_MISSING_CONF" = true -o ! -z "$PRE_COMMIT_ALLOW_NO_CONFIG" ]; then echo '`{config_file}` config file not found. Skipping `pre-commit`.' exit $retv else echo 'No {config_file} file was found' echo '- To temporarily silence this, run `PRE_COMMIT_ALLOW_NO_CONFIG=1 git ...`' echo '- To permanently silence this, install pre-commit with the `--allow-missing-config` option' echo '- To uninstall pre-commit run `pre-commit uninstall`' exit 1 fi fi {hook_specific} # Run pre-commit if ! "$exe" $run_args run $args --config {config_file}; then retv=1 fi exit $retv