1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #!/bin/sh
- CLANG_FORMAT=clang-format-6.0
- if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
-
-
- RANGE="$(git rev-parse $TRAVIS_BRANCH) HEAD"
- else
-
- RANGE=HEAD
- fi
- FILES=$(git diff-tree --no-commit-id --name-only -r $RANGE | grep -v thirdparty/ | grep -E "\.(c|h|cpp|hpp|cc|hh|cxx|m|mm|inc|java)$")
- echo "Checking files:\n$FILES"
- prefix="static-check-clang-format"
- suffix="$(date +%s)"
- patch="/tmp/$prefix-$suffix.patch"
- for file in $FILES; do
- "$CLANG_FORMAT" -style=file "$file" | \
- diff -u "$file" - | \
- sed -e "1s|--- |--- a/|" -e "2s|+++ -|+++ b/$file|" >> "$patch"
- done
- if [ ! -s "$patch" ] ; then
- printf "Files in this commit comply with the clang-format rules.\n"
- rm -f "$patch"
- exit 0
- fi
- printf "\n*** The following differences were found between the code to commit "
- printf "and the clang-format rules:\n\n"
- cat "$patch"
- printf "\n*** Aborting, please fix your commit(s) with 'git commit --amend' or 'git rebase -i <hash>'\n"
- exit 1
|