Skip to content

Commit

Permalink
Enforce clang-format for c-like sources on Travis (flutter#4089)
Browse files Browse the repository at this point in the history
* Enforce clang-format for c-like sources on Travis

* Edit CONTRIBUTING,md

* review feedback:

* ++

* ++

* ++
  • Loading branch information
goderbauer authored Sep 12, 2017
1 parent 08961f8 commit ff0a9a8
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 5 deletions.
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ before_script:
script:
- ./travis/build.sh
- ./travis/test.sh
- ./travis/format.sh
12 changes: 7 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -201,11 +201,13 @@ To start working on a patch:
* Make sure you are in the `engine/src/flutter` directory.
* `git fetch upstream`
* `git checkout upstream/master -b name_of_your_branch`
* Hack away. Please peruse our
[style guides](https://flutter.io/style-guide/) and
[design principles](https://flutter.io/design-principles/) before
working on anything non-trivial. These guidelines are intended to
keep the code consistent and avoid common pitfalls.
* Hack away.
* Please peruse our [style guides](https://flutter.io/style-guide/) and
[design principles](https://flutter.io/design-principles/) before
working on anything non-trivial. These guidelines are intended to
keep the code consistent and avoid common pitfalls.
* C, C++, and Objective-C code should be formatted with `clang-format` before
submission (use `buildtools/<OS>/clang/bin/clang-format --style=file -i`).
* `git commit -a -m "<your brief but informative commit message>"`
* `git push origin name_of_your_branch`

Expand Down
39 changes: 39 additions & 0 deletions travis/format.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/bin/bash
set -e
echo "Checking formatting..."
cd ..

case "$(uname -s)" in
Darwin)
OS="mac-x64"
;;
Linux)
OS="linux-x64"
;;
*)
echo "Unknown operating system."
exit -1
;;
esac

CLANG_FORMAT="buildtools/$OS/clang/bin/clang-format"
$CLANG_FORMAT --version

FILES="$(find flutter/ -name '*.cpp' -or -name '*.h' -or -name '*.c' -or -name '*.cc' -or -name '*.m' -or -name '*.mm')"
FAILED_CHECKS=0

for FILE in $FILES; do
set +e
RESULT="$(diff -u "$FILE" <($CLANG_FORMAT --style=file "$FILE"))"
set -e
if ! [ -z "$RESULT" ]; then
echo "$RESULT"
FAILED_CHECKS=$(($counter+1))
fi
done

if [ $FAILED_CHECKS -ne 0 ]; then
echo "Some files are formatted incorrectly. To fix, apply diffs from above."
fi

exit $FAILED_CHECKS

0 comments on commit ff0a9a8

Please sign in to comment.