Inspiration: go/refactor-the-platform-with-lint
Special Thanks: brufino@, azharaa@, for the prior work that made this all possible
It's a python script that runs the framework linter, and then (optionally) copies modified files back into the source tree.
Why python, you ask? Because python is cool ¯_(ツ)_/¯.
Incidentally, this exposes a much simpler way to run individual lint checks against individual modules, so it's useful beyond applying fixes.
Lint is not allowed to modify source files directly via lint's --apply-suggestions
flag. As a compromise, soong zips up the (potentially) modified sources and leaves them in an intermediate directory. This script runs the lint, unpacks those files, and copies them back into the tree.
WARNING: You probably want to commit/stash any changes to your working tree before doing this...
source build/envsetup.sh lunch cf_x86_64_phone-userdebug # or any lunch target m lint_fix lint_fix -h
The script's help output explains things that are omitted here.