blob: 10d9e835cc03a54194fb9312276771aa572f9058 [file] [log] [blame]
#! /bin/bash
if [[ $# -ne 2 ]]; then
echo "Error: Incorrect number of arguments" >&2
echo "Usage: ./run_lint.sh <repo_root> <CL_SHA>" >&2
exit 100
fi
git show --name-only --pretty=format: $2 | grep packages/SystemUI/ > /dev/null
exitcode=$?
if [[ exitcode -eq 1 ]]; then
exit 0
fi
if [[ -z $ANDROID_BUILD_TOP ]]; then
echo "Error: ANDROID_BUILD_TOP must be set" >&2
echo "Try setting up your environment first:" >&2
echo " source build/envsetup.sh && lunch <target>" >&2
exit 101
fi
# TODO: Run lint as part of the build so we can specify the dependency properly
systemuijarpath="out/soong/.intermediates/frameworks/base/packages/SystemUI/SystemUI-core/android_common/combined/SystemUI-core.jar"
if [[ ! -f $ANDROID_BUILD_TOP/$systemuijarpath ]]; then
echo "Error: Classes.jar file not found" >&2
echo "Try building that jar file manually:" >&2
echo " m -j16 out/soong/.intermediates/frameworks/base/packages/SystemUI/SystemUI-core/android_common/combined/SystemUI-core.jar" >&2
exit 102
fi
REPO_ROOT=$1
${REPO_ROOT}/prebuilts/devtools/tools/lint \
. \
--exitcode \
-Werror \
--config ${REPO_ROOT}/frameworks/base/packages/SystemUI/tools/lint/lint.xml \
--html ${REPO_ROOT}/out/lint_output.html \
--baseline ${REPO_ROOT}/frameworks/base/packages/SystemUI/tools/lint/baseline.xml \
--remove-fixed
exitcode=$?
if [[ exitcode -eq 1 ]]; then
cat >&2 <<EOF
Please check the HTML results file and fix the errors.
If the error cannot be fixed immediately, there are 3 possible resolutions:
1. Use tools:ignore or @SuppressLint annotation. This is preferred
for cases where the lint violation is intended, so that reviewers
can review whether the suppression is appropriate.
2. Use tools/lint.xml to ignore a lint check which we don't care
about for any file, or checks that are not actionable by the
CL author (e.g. translation issues)
3. If there are lint errors that should be fixed, but cannot be done
immediately for some reason, run ./tools/lint/update_baseline.sh to
add them to baseline.xml.
EOF
fi
exit $exitcode