diff options
Diffstat (limited to 'clang-format-diff.sh')
-rwxr-xr-x | clang-format-diff.sh | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/clang-format-diff.sh b/clang-format-diff.sh index 53020e59b..50a9800b5 100755 --- a/clang-format-diff.sh +++ b/clang-format-diff.sh @@ -1,11 +1,28 @@ #!/bin/bash -MERGE_BASE=$(git merge-base master HEAD) + +set -o errexit + +# When we are running on travis and *not* part of a pull request we don't +# have any upstream branch to compare against. +if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then + echo "Skipping since not running on travis PR" + exit 0 +fi + +if [ -n "$TRAVIS_BRANCH" ]; then + BRANCH=$TRAVIS_BRANCH +else + BRANCH=origin/master +fi + +MERGE_BASE=$(git merge-base $BRANCH HEAD) FORMAT_MSG=$(git clang-format $MERGE_BASE -q --diff -- src/) if [ -n "$FORMAT_MSG" -a "$FORMAT_MSG" != "no modified files to format" ] then echo "Run git clang-format before committing!" echo - # Run git clang-format once again to show the error + # Run git clang-format again, this time without capruting stdout. This way + # clang-format format the message nicely and add color. git clang-format $MERGE_BASE -q --diff -- src/ exit 1 fi |