Just wanted to share a git hook I'm using to automatically apply hlint to Haskell files that I'm commiting.
First all I'm using the existing pre-commit example that git provides (.git/hooks/pre-commit.sample). Just copy that file to .git/hooks/pre-commit and `chmod 755` it. Then I chained an hlint check to the whitespace check: --- .git/hooks/pre-commit.sample 2016-07-14 09:56:25.509776550 +0300 +++ .git/hooks/pre-commit 2016-07-22 12:23:12.997344972 +0300 @@ -46,4 +46,11 @@ fi # If there are whitespace errors, print the offending file names and fail. -exec git diff-index --check --cached $against -- +if git diff-index --check --cached $against -- +then + # Otherwise, if Haskell files have changed, run hlint on them. + changedHaskell=$(git diff-index --diff-filter=ACMR --numstat --cached $against -- '*.hs' | cut -f3) + exec ${changedHaskell:+hlint -XQuasiQuotes $changedHaskell} +else + exit 1 +fi Honestly I bet there's a nicer way to get the list of changed Haskell files, but git is weird.
signature.asc
Description: Digital signature
_______________________________________________ Dev mailing list Dev@lists.snowdrift.coop https://lists.snowdrift.coop/mailman/listinfo/dev