summaryrefslogtreecommitdiff
path: root/clang-format-diff.sh
diff options
context:
space:
mode:
Diffstat (limited to 'clang-format-diff.sh')
-rwxr-xr-xclang-format-diff.sh21
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