#!/bin/bash source "$(dirname "$BASH_SOURCE")/.validate" #Ignoring files from vendor/, builder/parser/testfiles*, docs/theme/mkdocs/tipuesearch*, ending with .md and .go ignoreFiles='^builder/parser/testfiles*|^docs/theme/mkdocs/tipuesearch*|^vendor/|\.md$|\.go$' IFS=$'\n' files=( $(validate_diff --diff-filter=ACMR --name-only | grep -v "$ignoreFiles" || true) ) unset IFS badFiles=() for f in "${files[@]}"; do if [ "$(git show "$VALIDATE_HEAD:$f" | grep '[[:space:]]$')" ]; then badFiles+=( "$f" ) fi done if [ ${#badFiles[@]} -eq 0 ]; then echo 'Congratulations! All text files are properly formatted.' else { echo "These files have trailing whitespaces:" for f in "${badFiles[@]}"; do echo " - $f" done echo echo 'Please reformat the above files using, for example:' echo '"ex -sc "'"%s/[[:space:]]*$//g|x"'" file" and commit the result.' echo } >&2 false fi