#!/usr/bin/env bash # Copy me to .git/hooks/pre-commit set -e cleanup() { if [[ "$D" && -e "$D" ]];then rm -rf "$D" fi } trap cleanup EXIT D=$(mktemp -d) [[ "$D" && -d "$D" ]] git checkout-index --prefix="$D/" -a pushd "$D" # So we don't confuse the inner git invocations inside the tests with # the outer git invocation that's trying to commit a change. unset GIT_AUTHOR_DATE unset GIT_AUTHOR_EMAIL unset GIT_AUTHOR_NAME unset GIT_CONFIG_PARAMETERS unset GIT_EXEC_PATH unset GIT_INDEX_FILE unset GIT_PREFIX nix-shell --arg lint true --run './test.sh lint' popd