| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # | 2 # |
| 3 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 3 # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
| 5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
| 6 | 6 |
| 7 """Runs Android's lint tool.""" | 7 """Runs Android's lint tool.""" |
| 8 | 8 |
| 9 | 9 |
| 10 import argparse | 10 import argparse |
| 11 import os | 11 import os |
| 12 import re | 12 import re |
| 13 import sys | 13 import sys |
| 14 import traceback | 14 import traceback |
| 15 from xml.dom import minidom | 15 from xml.dom import minidom |
| 16 | 16 |
| 17 from util import build_utils | 17 from util import build_utils |
| 18 | 18 |
| 19 | 19 _LINT_MD_URL = 'https://chromium.googlesource.com/chromium/src/+/master/build/an
droid/docs/lint.md' # pylint: disable=line-too-long |
| 20 _SRC_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), | 20 _SRC_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), |
| 21 '..', '..', '..')) | 21 '..', '..', '..')) |
| 22 | 22 |
| 23 | 23 |
| 24 def _OnStaleMd5(lint_path, config_path, processed_config_path, | 24 def _OnStaleMd5(lint_path, config_path, processed_config_path, |
| 25 manifest_path, result_path, product_dir, sources, jar_path, | 25 manifest_path, result_path, product_dir, sources, jar_path, |
| 26 cache_dir, android_sdk_version, resource_dir=None, | 26 cache_dir, android_sdk_version, resource_dir=None, |
| 27 classpath=None, can_fail_build=False, silent=False): | 27 classpath=None, can_fail_build=False, silent=False): |
| 28 def _RelativizePath(path): | 28 def _RelativizePath(path): |
| 29 """Returns relative path to top-level src dir. | 29 """Returns relative path to top-level src dir. |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 except Exception: # pylint: disable=broad-except | 189 except Exception: # pylint: disable=broad-except |
| 190 if not silent: | 190 if not silent: |
| 191 print 'Lint created unparseable xml file...' | 191 print 'Lint created unparseable xml file...' |
| 192 print 'File contents:' | 192 print 'File contents:' |
| 193 with open(result_path) as f: | 193 with open(result_path) as f: |
| 194 print f.read() | 194 print f.read() |
| 195 raise | 195 raise |
| 196 | 196 |
| 197 _ProcessResultFile() | 197 _ProcessResultFile() |
| 198 msg = ('\nLint found %d new issues.\n' | 198 msg = ('\nLint found %d new issues.\n' |
| 199 ' - For full explanation refer to %s\n' % | 199 ' - For full explanation, please refer to %s\n' |
| 200 ' - For more information about lint and how to fix lint issues,' |
| 201 ' please refer to %s\n' % |
| 200 (num_issues, | 202 (num_issues, |
| 201 _RelativizePath(result_path))) | 203 _RelativizePath(result_path), |
| 202 if config_path: | 204 _LINT_MD_URL)) |
| 203 msg += (' - Wanna suppress these issues?\n' | |
| 204 ' 1. Read comment in %s\n' | |
| 205 ' 2. Run "python %s %s"\n' % | |
| 206 (_RelativizePath(config_path), | |
| 207 _RelativizePath(os.path.join(_SRC_ROOT, 'build', 'android', | |
| 208 'lint', 'suppress.py')), | |
| 209 _RelativizePath(result_path))) | |
| 210 if not silent: | 205 if not silent: |
| 211 print >> sys.stderr, msg | 206 print >> sys.stderr, msg |
| 212 if can_fail_build: | 207 if can_fail_build: |
| 213 raise Exception('Lint failed.') | 208 raise Exception('Lint failed.') |
| 214 | 209 |
| 215 | 210 |
| 216 def main(): | 211 def main(): |
| 217 parser = argparse.ArgumentParser() | 212 parser = argparse.ArgumentParser() |
| 218 build_utils.AddDepfileOption(parser) | 213 build_utils.AddDepfileOption(parser) |
| 219 | 214 |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 317 silent=args.silent), | 312 silent=args.silent), |
| 318 args, | 313 args, |
| 319 input_paths=input_paths, | 314 input_paths=input_paths, |
| 320 input_strings=input_strings, | 315 input_strings=input_strings, |
| 321 output_paths=output_paths, | 316 output_paths=output_paths, |
| 322 depfile_deps=classpath) | 317 depfile_deps=classpath) |
| 323 | 318 |
| 324 | 319 |
| 325 if __name__ == '__main__': | 320 if __name__ == '__main__': |
| 326 sys.exit(main()) | 321 sys.exit(main()) |
| OLD | NEW |