1#! /bin/bash 2 3if [[ $# -ne 2 ]]; then 4 echo "Error: Incorrect number of arguments" >&2 5 echo "Usage: ./run_lint.sh <repo_root> <CL_SHA>" >&2 6 exit 100 7fi 8 9git show --name-only --pretty=format: $2 | grep packages/SystemUI/ > /dev/null 10exitcode=$? 11if [[ exitcode -eq 1 ]]; then 12 exit 0 13fi 14 15if [[ -z $ANDROID_BUILD_TOP ]]; then 16 echo "Error: ANDROID_BUILD_TOP must be set" >&2 17 echo "Try setting up your environment first:" >&2 18 echo " source build/envsetup.sh && lunch <target>" >&2 19 exit 101 20fi 21 22# TODO: Run lint as part of the build so we can specify the dependency properly 23systemuijarpath="out/soong/.intermediates/frameworks/base/packages/SystemUI/SystemUI-core/android_common/combined/SystemUI-core.jar" 24if [[ ! -f $ANDROID_BUILD_TOP/$systemuijarpath ]]; then 25 echo "Error: Classes.jar file not found" >&2 26 echo "Try building that jar file manually:" >&2 27 echo " m -j16 out/soong/.intermediates/frameworks/base/packages/SystemUI/SystemUI-core/android_common/combined/SystemUI-core.jar" >&2 28 exit 102 29fi 30 31REPO_ROOT=$1 32${REPO_ROOT}/prebuilts/devtools/tools/lint \ 33 . \ 34 --exitcode \ 35 -Werror \ 36 --config ${REPO_ROOT}/frameworks/base/packages/SystemUI/tools/lint/lint.xml \ 37 --html ${REPO_ROOT}/out/lint_output.html \ 38 --baseline ${REPO_ROOT}/frameworks/base/packages/SystemUI/tools/lint/baseline.xml \ 39 --remove-fixed 40exitcode=$? 41if [[ exitcode -eq 1 ]]; then 42 cat >&2 <<EOF 43 44Please check the HTML results file and fix the errors. 45If the error cannot be fixed immediately, there are 3 possible resolutions: 461. Use tools:ignore or @SuppressLint annotation. This is preferred 47 for cases where the lint violation is intended, so that reviewers 48 can review whether the suppression is appropriate. 492. Use tools/lint.xml to ignore a lint check which we don't care 50 about for any file, or checks that are not actionable by the 51 CL author (e.g. translation issues) 523. If there are lint errors that should be fixed, but cannot be done 53 immediately for some reason, run ./tools/lint/update_baseline.sh to 54 add them to baseline.xml. 55 56EOF 57fi 58 59exit $exitcode 60