daml/.envrc
Stefano Baghino 06e5c65dbc
Adjustments to usage of pre-commit (#15889)
- sets the default value for the hook type to `pre-push`
- allows to configure the hook type using `DADE_PRE_COMMIT_HOOK_TYPE`
- uninstalls all hooks with `direnv` before installation (no manual clean-up needed)
- documents the usage of `pre-commit` in `README.md`
- makes sure `pre-commit` is quiet when run with `direnv`
2023-01-09 11:45:32 +01:00

16 lines
965 B
Plaintext

echo "[dev-env] Setting up DA Development Environment"
eval "$(dev-env/bin/dade assist)"
DADE_PRE_COMMIT_HOOK_TYPE=pre-push
# Load private overrides
[[ -f .envrc.private ]] && source_env .envrc.private
# always start from a clean slate to ensure that the install phase produces the scenario described by `DADE_NO_PRE_COMMIT` and `DADE_PRE_COMMIT_HOOK_TYPE`
# this is a bit unfortunate but it doesn't look like pre-commit currently supports uninstalling all hooks in one go as of version 2.20.0
HOOK_TYPES=(pre-commit pre-merge-commit pre-push prepare-commit-msg commit-msg post-checkout post-commit post-merge post-rewrite)
for HOOK_TYPE in ${HOOK_TYPES[@]}; do pre-commit uninstall -t "$HOOK_TYPE" > /dev/null; done
# install pre-commit hook (opt-out by setting `DADE_NO_PRE_COMMIT`, set the hook type with `DADE_PRE_COMMIT_HOOK_TYPE` -- defaults to 'pre-push')
test "x$DADE_NO_PRE_COMMIT" = x && pre-commit install -t "$DADE_PRE_COMMIT_HOOK_TYPE" > /dev/null