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

Side by Side Diff: mojo/dart/embedder/tools/dart_embedder_url_mappings.py

Issue 1071693003: Uses mojom module names as Dart's package: import URI (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Merge Created 5 years, 8 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
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright 2015 The Chromium Authors. All rights reserved. 2 # Copyright 2015 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 # This script scans a directory tree for any .mojom files and outputs a 6 # This script scans a directory tree for any .mojom files and outputs a
7 # list of url_mapping command line arguments for embedder-package: imports. 7 # list of url_mapping command line arguments for embedder-package: imports.
8 # These url_mapping arguments can be passed to gen_snapshot. 8 # These url_mapping arguments can be passed to gen_snapshot.
9 9
10 # an example output line: 10 # an example output line:
11 # --url_mapping=embedder-package:mojo/service.mojom.dart, \ 11 # --url_mapping=embedder-package:mojo/service.mojom.dart, \
12 # /.../src/out/Debug/gen/dart_embedder_packages/mojo/service.mojom.dart 12 # /.../src/out/Debug/gen/dart_embedder_packages/mojo/service.mojom.dart
13 13
14 import argparse 14 import argparse
15 import os 15 import os
16 import sys 16 import sys
17 17
18 def scan(root, package_root, directory): 18 def scan(package_root, directory, mapped_to):
19 for dirname, _, filenames in os.walk(directory): 19 for dirname, _, filenames in os.walk(directory):
20 # filter for .mojom.dart files. 20 # Ignore tests.
21 if dirname.endswith('tests'):
22 continue;
23 # filter for .mojom files.
21 filenames = [f for f in filenames if f.endswith('.mojom')] 24 filenames = [f for f in filenames if f.endswith('.mojom')]
22 for f in filenames: 25 for f in filenames:
23 # Ignore tests. 26 path = os.path.join(mapped_to, f)
24 if dirname.endswith('tests'):
25 continue;
26 path = os.path.abspath(os.path.join(dirname, f))
27 path = os.path.relpath(path, root)
28 # Append .dart. 27 # Append .dart.
29 path += '.dart' 28 path += '.dart'
30 print('--url_mapping=embedder-package:' + path + ',' + 29 print('--url_mapping=embedder-package:' + path + ',' +
31 os.path.join(package_root, path)) 30 os.path.join(package_root, path))
32 31
33 def main(args): 32 def main(args):
34 parser = argparse.ArgumentParser( 33 parser = argparse.ArgumentParser(
35 description='Generates --url_mapping arguments suitable for gen_snapshot') 34 description='Generates --url_mapping arguments suitable for gen_snapshot')
36 parser.add_argument('import_directory_root',
37 metavar='import_directory_root',
38 help='Path to directory which all package import paths'
39 ' are relative to.')
40 parser.add_argument('package_directory_root', 35 parser.add_argument('package_directory_root',
41 metavar='package_directory_root', 36 metavar='package_directory_root',
42 help='Path to directory containing target .dart ' 37 help='Path to directory containing target .dart '
43 'files.') 38 'files.')
44 parser.add_argument('packages', 39 parser.add_argument('packages',
45 metavar='packages', 40 metavar='packages',
46 nargs='+', 41 nargs='+',
47 help='Paths to package(s) directories.') 42 help='Paths to package(s) directories.')
48 args = parser.parse_args() 43 args = parser.parse_args()
49 import_root = os.path.abspath(args.import_directory_root)
50 package_root = os.path.abspath(args.package_directory_root) 44 package_root = os.path.abspath(args.package_directory_root)
51 packages = args.packages 45 packages = args.packages
52 for package in packages: 46 for package in packages:
53 directory = os.path.abspath(package) 47 mapping = package.split(',', 1)
54 scan(import_root, package_root, directory) 48 directory = os.path.abspath(mapping[0])
49 mapped_to = mapping[1]
50 scan(package_root, directory, mapped_to)
55 51
56 if __name__ == '__main__': 52 if __name__ == '__main__':
57 sys.exit(main(sys.argv[1:])) 53 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « mojo/dart/embedder/test/validation_unittest.cc ('k') | mojo/dart/test/bindings_generation_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698