As used by Tom Ryder, because Michael Fincham asked.
pre-commit file goes in
.git/hooks in your repository, and you make it
executable. You'll need
file(1) and various other binaries in your
This is nowhere near as tidy as it could be, but it correctly handles syntax checking and linting of added or changed files only, without rescanning the whole project. It does this with some byzantine Bash. It handles filenames with funny characters (including newlines) correctly.
I'll write some real documentation Later™.