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

Side by Side Diff: chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py

Issue 342153003: Add ChromeVox braille_util_test to chromevox_tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkcr
Patch Set: Created 6 years, 6 months 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
« no previous file with comments | « chrome/browser/resources/chromeos/chromevox/tools/generate_test_messages.py ('k') | no next file » | 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 2
3 # Copyright 2014 The Chromium Authors. All rights reserved. 3 # Copyright 2014 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 '''Produces various output formats from a set of JavaScript files with 7 '''Produces various output formats from a set of JavaScript files with
8 closure style require/provide calls. 8 closure style require/provide calls.
9 9
10 Scans one or more directory trees for JavaScript files. Then, from a 10 Scans one or more directory trees for JavaScript files. Then, from a
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 Returns: 137 Returns:
138 str: The corresponding output path. 138 str: The corresponding output path.
139 ''' 139 '''
140 for in_prefix, out_prefix in self._prefix_map: 140 for in_prefix, out_prefix in self._prefix_map:
141 if in_path.startswith(in_prefix): 141 if in_path.startswith(in_prefix):
142 return os.path.join(out_prefix, in_path[len(in_prefix):]) 142 return os.path.join(out_prefix, in_path[len(in_prefix):])
143 return in_path 143 return in_path
144 144
145 145
146 def ReadSources(roots=[], source_files=[], need_source_text=False, 146 def ReadSources(roots=[], source_files=[], need_source_text=False,
147 path_rewriter=PathRewriter()): 147 path_rewriter=PathRewriter(), exclude=[]):
148 '''Reads all source specified on the command line, including sources 148 '''Reads all source specified on the command line, including sources
149 included by --root options. 149 included by --root options.
150 ''' 150 '''
151 151
152 def EnsureSourceLoaded(in_path, sources): 152 def EnsureSourceLoaded(in_path, sources):
153 if in_path not in sources: 153 if in_path not in sources:
154 out_path = path_rewriter.RewritePath(in_path) 154 out_path = path_rewriter.RewritePath(in_path)
155 sources[in_path] = SourceWithPaths(source.GetFileContents(in_path), 155 sources[in_path] = SourceWithPaths(source.GetFileContents(in_path),
156 in_path, out_path) 156 in_path, out_path)
157 157
158 # Only read the actual source file if we will do a dependency analysis or 158 # Only read the actual source file if we will do a dependency analysis or
159 # the caller asks for it. 159 # the caller asks for it.
160 need_source_text = need_source_text or len(roots) > 0 160 need_source_text = need_source_text or len(roots) > 0
161 sources = {} 161 sources = {}
162 for root in roots: 162 for root in roots:
163 for name in treescan.ScanTreeForJsFiles(root): 163 for name in treescan.ScanTreeForJsFiles(root):
164 if any((r.search(name) for r in exclude)):
165 continue
164 EnsureSourceLoaded(name, sources) 166 EnsureSourceLoaded(name, sources)
165 for path in source_files: 167 for path in source_files:
166 if need_source_text: 168 if need_source_text:
167 EnsureSourceLoaded(path, sources) 169 EnsureSourceLoaded(path, sources)
168 else: 170 else:
169 # Just add an empty representation of the source. 171 # Just add an empty representation of the source.
170 sources[path] = SourceWithPaths( 172 sources[path] = SourceWithPaths(
171 '', path, path_rewriter.RewritePath(path)) 173 '', path, path_rewriter.RewritePath(path))
172 return sources 174 return sources
173 175
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 'specifying that a file whose (relative) path ' + 296 'specifying that a file whose (relative) path ' +
295 'name starts with the first prefix should have ' + 297 'name starts with the first prefix should have ' +
296 'that prefix replaced by the second prefix to ' + 298 'that prefix replaced by the second prefix to ' +
297 'form a path relative to the output directory.')) 299 'form a path relative to the output directory.'))
298 parser.add_option('-m', '--mode', type='choice', action='store', 300 parser.add_option('-m', '--mode', type='choice', action='store',
299 choices=['list', 'html', 'bundle', 301 choices=['list', 'html', 'bundle',
300 'compressed_bundle', 'copy'], 302 'compressed_bundle', 'copy'],
301 default='list', metavar='MODE', 303 default='list', metavar='MODE',
302 help=("Otput mode. One of 'list', 'html', 'bundle', " + 304 help=("Otput mode. One of 'list', 'html', 'bundle', " +
303 "'compressed_bundle' or 'copy'.")) 305 "'compressed_bundle' or 'copy'."))
306 parser.add_option('-x', '--exclude', action='append', default=[],
307 help=('Exclude files whose full path contains a match for '
308 'the given regular expression. Does not apply to '
309 'filenames given as arguments.'))
304 return parser 310 return parser
305 311
306 312
307 def main(): 313 def main():
308 options, args = CreateOptionParser().parse_args() 314 options, args = CreateOptionParser().parse_args()
309 if len(args) < 1: 315 if len(args) < 1:
310 Die('At least one top-level source file must be specified.') 316 Die('At least one top-level source file must be specified.')
311 will_output_source_text = options.mode in ('bundle', 'compressed_bundle') 317 will_output_source_text = options.mode in ('bundle', 'compressed_bundle')
312 path_rewriter = PathRewriter(options.prefix_map) 318 path_rewriter = PathRewriter(options.prefix_map)
319 exclude = [re.compile(r) for r in options.exclude]
313 sources = ReadSources(options.roots, args, will_output_source_text, 320 sources = ReadSources(options.roots, args, will_output_source_text,
314 path_rewriter) 321 path_rewriter, exclude)
315 if will_output_source_text: 322 if will_output_source_text:
316 _MarkAsCompiled(sources) 323 _MarkAsCompiled(sources)
317 bundle = Bundle() 324 bundle = Bundle()
318 if len(options.roots) > 0: 325 if len(options.roots) > 0:
319 CalcDeps(bundle, sources, args) 326 CalcDeps(bundle, sources, args)
320 bundle.Add((sources[name] for name in args)) 327 bundle.Add((sources[name] for name in args))
321 if options.mode == 'copy': 328 if options.mode == 'copy':
322 if options.dest_dir is None: 329 if options.dest_dir is None:
323 Die('Must specify --dest_dir when copying.') 330 Die('Must specify --dest_dir when copying.')
324 LinkOrCopyFiles(bundle.GetSources(), options.dest_dir) 331 LinkOrCopyFiles(bundle.GetSources(), options.dest_dir)
325 else: 332 else:
326 if options.output_file: 333 if options.output_file:
327 out_file = open(options.output_file, 'w') 334 out_file = open(options.output_file, 'w')
328 else: 335 else:
329 out_file = sys.stdout 336 out_file = sys.stdout
330 try: 337 try:
331 WriteOutput(bundle, options.mode, out_file, options.dest_dir) 338 WriteOutput(bundle, options.mode, out_file, options.dest_dir)
332 finally: 339 finally:
333 if options.output_file: 340 if options.output_file:
334 out_file.close() 341 out_file.close()
335 342
336 343
337 if __name__ == '__main__': 344 if __name__ == '__main__':
338 main() 345 main()
OLDNEW
« no previous file with comments | « chrome/browser/resources/chromeos/chromevox/tools/generate_test_messages.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698