#!/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