Add a simple whitespace linter

The goimports tool does not check for trailing whitespaces in multiline
strings. This commit adds a simple linter to address this deficiency.

This change will also have the benefit of providing light linting of any
non-go files.

Change-Id: I253dd7c4895f476fa3a6f0c4fccf7c9cada16366
This commit is contained in:
Ian Howell 2020-01-07 12:03:26 -06:00
parent a8cc7ed2bf
commit 1b8a965105
2 changed files with 12 additions and 0 deletions

View File

@ -80,6 +80,7 @@ fmt: lint
lint: tidy lint: tidy
lint: $(LINTER) lint: $(LINTER)
@echo "Performing linting step..." @echo "Performing linting step..."
@./tools/whitespace_linter
@./$(LINTER) run --config $(LINTER_CONFIG) @./$(LINTER) run --config $(LINTER_CONFIG)
@echo "Linting completed successfully" @echo "Linting completed successfully"

11
tools/whitespace_linter Executable file
View File

@ -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