#!/bin/bash set -e -u -o pipefail # An AWK regex matching tracked file paths to be excluded from the search. # Example: '.*\.po|README' PATH_EXCLUDE_REGEX='.*\.po|.*\.patch|.*\.diff|\/debian\/.*' export GIT_DIR="$ABS_TOP_SRCDIR/.git" export GIT_WORK_TREE="$ABS_TOP_SRCDIR" if [ ! -d "$GIT_DIR" ]; then echo "Git repository is required for this test!" 1>&2 exit 77 fi { # Look for lines with trailing whitespace in all files tracked by Git git grep -n -I '\s\+$' -- "$(git rev-parse --show-toplevel)" || # Don't fail if no such lines were found anywhere [[ $? == 1 ]] } | awk -- " BEGIN { found = 0 } ! /^($PATH_EXCLUDE_REGEX):/ { if (!found) { print \"Trailing whitespace found:\" found = 1 } print } END { exit found } " declare found_file=false while read file; do [[ $file == "src/config/testconfigs/noparse.api.conf" ]] && continue [[ $file =~ ^src/tests/cmocka/p11_nssdb/.*db ]] && continue test `tail -c 1 $ABS_TOP_SRCDIR/$file` && \ echo "Missing new line at the eof: $file" && \ found_file=true done < <(git ls-files) if $found_file; then exit 1 fi