Browse Source

Add tab char lint check and exclude imported dependencies

0.16
MeshCollider 7 years ago
parent
commit
1f379b1f06
  1. 59
      contrib/devtools/lint-whitespace.sh

59
contrib/devtools/lint-whitespace.sh

@ -8,40 +8,81 @@
# We can't run this check unless we know the commit range for the PR. # We can't run this check unless we know the commit range for the PR.
if [ -z "${TRAVIS_COMMIT_RANGE}" ]; then if [ -z "${TRAVIS_COMMIT_RANGE}" ]; then
exit 0 echo "Cannot run lint-whitespace.sh without commit range. To run locally, use:"
echo "TRAVIS_COMMIT_RANGE='<commit range>' .lint-whitespace.sh"
echo "For example:"
echo "TRAVIS_COMMIT_RANGE='47ba2c3...ee50c9e' .lint-whitespace.sh"
exit 1
fi fi
showdiff() { showdiff() {
if ! git diff -U0 "${TRAVIS_COMMIT_RANGE}" --; then if ! git diff -U0 "${TRAVIS_COMMIT_RANGE}" -- "." ":(exclude)src/leveldb/" ":(exclude)src/secp256k1/" ":(exclude)src/univalue/"; then
echo "Failed to get a diff" echo "Failed to get a diff"
exit 1 exit 1
fi fi
} }
# Do a first pass, and if no trailing whitespace was found then exit early. showcodediff() {
if ! showdiff | grep -E -q '^\+.*\s+$'; then if ! git diff -U0 "${TRAVIS_COMMIT_RANGE}" -- *.cpp *.h *.md *.py *.sh ":(exclude)src/leveldb/" ":(exclude)src/secp256k1/" ":(exclude)src/univalue/"; then
exit echo "Failed to get a diff"
exit 1
fi fi
}
RET=0
# Check if trailing whitespace was found in the diff.
if showdiff | grep -E -q '^\+.*\s+$'; then
echo "This diff appears to have added new lines with trailing whitespace." echo "This diff appears to have added new lines with trailing whitespace."
echo "The following changes were suspected:" echo "The following changes were suspected:"
FILENAME="" FILENAME=""
SEEN=0 SEEN=0
while read -r line; do while read -r line; do
if [[ "$line" =~ ^diff ]]; then if [[ "$line" =~ ^diff ]]; then
FILENAME="$line" FILENAME="$line"
SEEN=0 SEEN=0
elif [[ "$line" =~ ^@@ ]]; then
LINENUMBER="$line"
else else
if [ "$SEEN" -eq 0 ]; then if [ "$SEEN" -eq 0 ]; then
# The first time a file is seen with trailing whitespace, we print the # The first time a file is seen with trailing whitespace, we print the
# filename (preceded by a newline). # filename (preceded by a newline).
echo echo
echo "$FILENAME" echo "$FILENAME"
echo "$LINENUMBER"
SEEN=1 SEEN=1
fi fi
echo "$line" echo "$line"
fi fi
done < <(showdiff | grep -E '^(diff --git |\+.*\s+$)') done < <(showdiff | grep -E '^(diff --git |@@|\+.*\s+$)')
exit 1 RET=1
fi
# Check if tab characters were found in the diff.
if showcodediff | grep -P -q '^\+.*\t'; then
echo "This diff appears to have added new lines with tab characters instead of spaces."
echo "The following changes were suspected:"
FILENAME=""
SEEN=0
while read -r line; do
if [[ "$line" =~ ^diff ]]; then
FILENAME="$line"
SEEN=0
elif [[ "$line" =~ ^@@ ]]; then
LINENUMBER="$line"
else
if [ "$SEEN" -eq 0 ]; then
# The first time a file is seen with a tab character, we print the
# filename (preceded by a newline).
echo
echo "$FILENAME"
echo "$LINENUMBER"
SEEN=1
fi
echo "$line"
fi
done < <(showcodediff | grep -P '^(diff --git |@@|\+.*\t)')
RET=1
fi
exit $RET

Loading…
Cancel
Save