Parallelize the travis run using build stages
https://docs.travis-ci.com/user/build-stages/
This will run source checks first (style, lint) and then if all pass,
kick off all platforms and builds in parallel.
* Factor out a whitespace checking script
* Factor out a copyright checking script
* Rewrite lint.sh to honor revision ranges
* Only restyle files that are part of the PR
* Run C++ lint before builds to fail faster
* Git grep doesn't operate on revision ranges
* style.sh accepts clang-format 6 or 7
* Misc style.sh fixes
* Allow test-only to use a revision; to check your changes since
master:
./scripts/style.sh test-only master
* Avoid diffing deleted files
* 80 columns
* Fix C++ lint errors
* Avoid pruning paths with find
find . -path foo -path bar -path baz is horrifically inefficient;
properly excluding all of FirebaseAuth without excluding
Firestore/Source/Auth ends up taking 1.5 minutes on my machine.
Deleting via sed is much faster.
* Allow a branch name or filenames to be specified on the command line
e.g. ./scripts/style.sh master formats only files changed since master.
* Format Firebase/Source/Auth code
* Use alternate delimeter for path regexen