diff --git a/Makefile b/Makefile index 44c90cdf8..ea2c9167f 100644 --- a/Makefile +++ b/Makefile @@ -80,6 +80,7 @@ fmt: lint lint: tidy lint: $(LINTER) @echo "Performing linting step..." + @./tools/whitespace_linter @./$(LINTER) run --config $(LINTER_CONFIG) @echo "Linting completed successfully" diff --git a/tools/whitespace_linter b/tools/whitespace_linter new file mode 100755 index 000000000..280cef5da --- /dev/null +++ b/tools/whitespace_linter @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# git 1.9.0+ allows for exclusions in pathspecs via ':!foo' syntax. +# However, until git 2.13.0 there must be at least one "inclusive" pathspec, hence the './*' +trailing_whitespace=$(git grep -E -n -- ' +$' -- './*' ':!*.png') + +if [[ -n "$trailing_whitespace" ]]; then + printf "ERROR: Trailing whitespaces:\n" + awk 'BEGIN {FS=":"} {printf " * %s:%s\n", $1, $2}' <<< "$trailing_whitespace" + exit 1 +fi