if git rev-parse --verify HEAD >/dev/null 2>&1
then
against=HEAD
else
against=$(git hash-object -t tree /dev/null)
fi
allownonascii=$(git config --type=bool hooks.allownonascii)
exec 1>&2
if [ "$allownonascii" != "true" ] &&
test $(git diff --cached --name-only --diff-filter=A -z $against |
LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
then
cat <<\EOF
Error: Attempt to add a non-ASCII file name.
This can cause problems if you want to work with people on other platforms.
To be portable it is advisable to rename the file.
If you know what you are doing you can disable this check using:
git config hooks.allownonascii true
EOF
exit 1
fi
if ! cargo test
then
echo "Some tests are not passing. Please fix and run 'cargo test' to verify."
exit 1
fi
if ! cargo fmt -- --check
then
echo "There are some code formatting or style issues. Run 'cargo fmt' to fix."
exit 1
fi
if ! cargo clippy --all-targets -- -D warnings
then
echo "There are some clippy linter issues. Run 'cargo clippy --all-targets -- -D warnings' for more information."
exit 1
fi
exit 0