whitespace_test revision cbff3fcdce5b0377a62fbe74f32e476efbf7ca9c
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov#!/bin/bash
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashovset -e -u -o pipefail
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov# An AWK regex matching tracked file paths to be excluded from the search.
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov# Example: '.*\.po|README'
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai KondrashovPATH_EXCLUDE_REGEX='.*\.po|.*\.patch|.*\.diff|\/debian\/.*'
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashovexport GIT_DIR="$ABS_TOP_SRCDIR/.git"
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashovexport GIT_WORK_TREE="$ABS_TOP_SRCDIR"
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashovif [ ! -d "$GIT_DIR" ]; then
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov echo "Git repository is required for this test!" 1>&2
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov exit 77
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashovfi
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashovgit grep -n -I '\s\+$' -- "$(git rev-parse --show-toplevel)" |
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov awk -- "
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov BEGIN {
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov found = 0
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov }
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov ! /^($PATH_EXCLUDE_REGEX):/ {
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov if (!found) {
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov print \"Trailing whitespace found:\"
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov found = 1
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov }
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov print
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov }
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov END {
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov exit found
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov }
cbff3fcdce5b0377a62fbe74f32e476efbf7ca9cNikolai Kondrashov "