Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(771)

Side by Side Diff: tools/checkdeps/checkdeps.py

Issue 75693002: GTTF: Make checkdeps.py produce JSON output that can be used in a recipe. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | tools/checkdeps/results.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2012 The Chromium Authors. All rights reserved. 2 # Copyright 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Makes sure that files include headers from allowed directories. 6 """Makes sure that files include headers from allowed directories.
7 7
8 Checks DEPS files in the source tree for rules, and applies those rules to 8 Checks DEPS files in the source tree for rules, and applies those rules to
9 "#include" and "import" directives in the .cpp and .java source files. 9 "#include" and "import" directives in the .cpp and .java source files.
10 Any source file including something not permitted by the DEPS files will fail. 10 Any source file including something not permitted by the DEPS files will fail.
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 action='store_true', dest='count_violations', default=False, 179 action='store_true', dest='count_violations', default=False,
180 help='Count #includes in violation of intended rules.') 180 help='Count #includes in violation of intended rules.')
181 option_parser.add_option( 181 option_parser.add_option(
182 '', '--skip-tests', 182 '', '--skip-tests',
183 action='store_true', dest='skip_tests', default=False, 183 action='store_true', dest='skip_tests', default=False,
184 help='Skip checking test files (best effort).') 184 help='Skip checking test files (best effort).')
185 option_parser.add_option( 185 option_parser.add_option(
186 '-v', '--verbose', 186 '-v', '--verbose',
187 action='store_true', default=False, 187 action='store_true', default=False,
188 help='Print debug logging') 188 help='Print debug logging')
189 option_parser.add_option(
190 '', '--json',
191 help='Path to JSON output file')
189 options, args = option_parser.parse_args() 192 options, args = option_parser.parse_args()
190 193
191 deps_checker = DepsChecker(options.base_directory, 194 deps_checker = DepsChecker(options.base_directory,
192 verbose=options.verbose, 195 verbose=options.verbose,
193 ignore_temp_rules=options.ignore_temp_rules, 196 ignore_temp_rules=options.ignore_temp_rules,
194 skip_tests=options.skip_tests) 197 skip_tests=options.skip_tests)
195 198
196 # Figure out which directory we have to check. 199 # Figure out which directory we have to check.
197 start_dir = deps_checker.base_directory 200 start_dir = deps_checker.base_directory
198 if len(args) == 1: 201 if len(args) == 1:
199 # Directory specified. Start here. It's supposed to be relative to the 202 # Directory specified. Start here. It's supposed to be relative to the
200 # base directory. 203 # base directory.
201 start_dir = os.path.abspath( 204 start_dir = os.path.abspath(
202 os.path.join(deps_checker.base_directory, args[0])) 205 os.path.join(deps_checker.base_directory, args[0]))
203 elif len(args) >= 2 or (options.generate_temp_rules and 206 elif len(args) >= 2 or (options.generate_temp_rules and
204 options.count_violations): 207 options.count_violations):
205 # More than one argument, or incompatible flags, we don't handle this. 208 # More than one argument, or incompatible flags, we don't handle this.
206 PrintUsage() 209 PrintUsage()
207 return 1 210 return 1
208 211
209 print 'Using base directory:', deps_checker.base_directory 212 print 'Using base directory:', deps_checker.base_directory
210 print 'Checking:', start_dir 213 print 'Checking:', start_dir
211 214
212 if options.generate_temp_rules: 215 if options.generate_temp_rules:
213 deps_checker.results_formatter = results.TemporaryRulesFormatter() 216 deps_checker.results_formatter = results.TemporaryRulesFormatter()
214 elif options.count_violations: 217 elif options.count_violations:
215 deps_checker.results_formatter = results.CountViolationsFormatter() 218 deps_checker.results_formatter = results.CountViolationsFormatter()
219
220 if options.json:
221 deps_checker.results_formatter = results.JSONResultsFormatter(
222 options.json, deps_checker.results_formatter)
223
216 deps_checker.CheckDirectory(start_dir) 224 deps_checker.CheckDirectory(start_dir)
217 return deps_checker.Report() 225 return deps_checker.Report()
218 226
219 227
220 if '__main__' == __name__: 228 if '__main__' == __name__:
221 sys.exit(main()) 229 sys.exit(main())
OLDNEW
« no previous file with comments | « no previous file | tools/checkdeps/results.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698