git-hooks: add pre-commit hook for fmt and testing checks.

This commit is contained in:
Bill Thiede 2021-07-17 08:14:08 -07:00
parent 339ce84903
commit e59029a94a
2 changed files with 34 additions and 0 deletions

8
git-hooks/README.md Normal file
View File

@ -0,0 +1,8 @@
# Installing
Symlink the files in this directory into your `.git/hooks/` directory to
enable policies for this project. Example:
```bash
$ cd .git/hooks
$ ln -s ../../git-hooks/pre-commit .
```

26
git-hooks/pre-commit Executable file
View File

@ -0,0 +1,26 @@
#!/usr/bin/env bash
set -e -x
pushd () {
command pushd "$@" > /dev/null
}
popd () {
command popd "$@" > /dev/null
}
for workspace in rtchallenge rtiow; do
pushd ${workspace:?}
cargo fmt -- --check || (echo "To fix, run: cd ${workspace:?} && cargo fmt" && false)
popd
done
RT=rtchallenge
AFFECTED="$(git diff-index --cached --name-only HEAD)"
#echo "AFFECTED $AFFECTED"
RT_AFFECTED=$(echo "${AFFECTED:?}" | grep ${RT:?} || true)
if [ ! -z "$RT_AFFECTED" ]; then
echo "Files for the rt challenge were touched, running tests"
cd ${RT:?} && cargo build --examples && cargo test
fi
# Uncomment to debug presubmit.
#exit 1