forked from dashpay/dash
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a lint check for trailing whitespace.
This adds a new CHECK_DOC check that looks for newly introduced trailing whitespace. Existing trailing whitespace (of which there is plenty!) will not trigger an error. This is written in a generic way so that new lint-*.sh scripts can be added to contrib/devtools/, as I'd like to contribute additional lint checks in the future.
- Loading branch information
1 parent
7fcd61b
commit dd36561
Showing
3 changed files
with
70 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
#!/bin/bash | ||
# | ||
# Copyright (c) 2017 The Bitcoin Core developers | ||
# Distributed under the MIT software license, see the accompanying | ||
# file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||
# | ||
# This script runs all contrib/devtools/lint-*.sh files, and fails if any exit | ||
# with a non-zero status code. | ||
|
||
set -u | ||
|
||
SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}") | ||
LINTALL=$(basename "${BASH_SOURCE[0]}") | ||
|
||
for f in "${SCRIPTDIR}"/lint-*.sh; do | ||
if [ "$(basename "$f")" != "$LINTALL" ]; then | ||
if ! "$f"; then | ||
echo "^---- failure generated from $f" | ||
exit 1 | ||
fi | ||
fi | ||
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
#!/bin/bash | ||
# | ||
# Copyright (c) 2017 The Bitcoin Core developers | ||
# Distributed under the MIT software license, see the accompanying | ||
# file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||
# | ||
# Check for new lines in diff that introduce trailing whitespace. | ||
|
||
# We can't run this check unless we know the commit range for the PR. | ||
if [ -z "${TRAVIS_COMMIT_RANGE}" ]; then | ||
exit 0 | ||
fi | ||
|
||
showdiff() { | ||
if ! git diff -U0 "${TRAVIS_COMMIT_RANGE}" --; then | ||
echo "Failed to get a diff" | ||
exit 1 | ||
fi | ||
} | ||
|
||
# Do a first pass, and if no trailing whitespace was found then exit early. | ||
if ! showdiff | grep -E -q '^\+.*\s+$'; then | ||
exit | ||
fi | ||
|
||
echo "This diff appears to have added new lines with trailing whitespace." | ||
echo "The following changes were suspected:" | ||
|
||
FILENAME="" | ||
SEEN=0 | ||
|
||
while read -r line; do | ||
if [[ "$line" =~ ^diff ]]; then | ||
FILENAME="$line" | ||
SEEN=0 | ||
else | ||
if [ "$SEEN" -eq 0 ]; then | ||
# The first time a file is seen with trailing whitespace, we print the | ||
# filename (preceded by a newline). | ||
echo | ||
echo "$FILENAME" | ||
SEEN=1 | ||
fi | ||
echo "$line" | ||
fi | ||
done < <(showdiff | grep -E '^(diff --git |\+.*\s+$)') | ||
exit 1 |