1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
#!/bin/sh
# This file will be used as ../../.git/hooks/pre-commit.
# However, it should be edited as checker/bin-devel/git.pre-commit.
# You can install it by running: (cd .. && ./gradlew installGitHooks)
# Fail if any command fails
set -e
# "ant -e check-style" would check every file; on commit we only need to
# check files that changed.
# Need to keep checked files in sync with getJavaFilesToFormat in build.gradle.
# Otherwise `./gradlew reformat` might not reformat a file that this
# hook complains about.
CHANGED_JAVA_FILES=`git diff --staged --name-only --diff-filter=ACM | grep '\.java$' | grep -v '/jdk/' | grep -v 'stubparser/' | grep -v '/nullness-javac-errors/' ` || true
# echo CHANGED_JAVA_FILES "'"${CHANGED_JAVA_FILES}"'"
if [ ! -z "$CHANGED_JAVA_FILES" ]; then
./gradlew getCodeFormatScripts -q
## For debugging:
# echo "CHANGED_JAVA_FILES: ${CHANGED_JAVA_FILES}"
python checker/bin-devel/.run-google-java-format/check-google-java-format.py --aosp ${CHANGED_JAVA_FILES} || (echo "Try running: ./gradlew reformat" && /bin/false)
BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [ "$BRANCH" = "master" ]; then
git diff --staged > /tmp/diff.txt
./gradlew getPlumeScripts -q
(./gradlew requireJavadocPrivate > /tmp/warnings-rjp.txt 2>&1) || true
checker/bin-devel/.plume-scripts/lint-diff.py --guess-strip /tmp/diff.txt /tmp/warnings-rjp.txt
(./gradlew javadocDoclintAll > /tmp/warnings-jda.txt 2>&1) || true
checker/bin-devel/.plume-scripts/lint-diff.py --guess-strip /tmp/diff.txt /tmp/warnings-jda.txt
fi
fi
# This is to handle non-.java files, since the above already handled .java files.
# May need to remove files that are allowed to have trailing whitespace or are
# not text files.
CHANGED_FILES=`git diff --staged --name-only --diff-filter=ACM | grep -v '\.class$' | grep -v '\.gz$' | grep -v '\.jar$' | grep -v '\.pdf$' | grep -v '\.png$' | grep -v '\.xcf$'` || true
if [ ! -z "$CHANGED_FILES" ]; then
# echo "CHANGED_FILES: ${CHANGED_FILES}"
FILES_WITH_TRAILING_SPACES=`grep -l -s '[[:blank:]]$' ${CHANGED_FILES} 2>&1` || true
if [ ! -z "$FILES_WITH_TRAILING_SPACES" ]; then
echo "Some files have trailing whitespace: ${FILES_WITH_TRAILING_SPACES}" && exit 1
fi
fi
|