| Index: mojo/public/tools/bindings/mojom_list_dart_outputs.py
|
| diff --git a/mojo/public/tools/bindings/mojom_list_dart_outputs.py b/mojo/public/tools/bindings/mojom_list_dart_outputs.py
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..3580cf1c703ff888c55c2ea359055fedb4de663d
|
| --- /dev/null
|
| +++ b/mojo/public/tools/bindings/mojom_list_dart_outputs.py
|
| @@ -0,0 +1,71 @@
|
| +#!/usr/bin/env python
|
| +# Copyright 2014 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +"""Generates the list of dart source file outputs from a mojom.Module."""
|
| +
|
| +import argparse
|
| +import os
|
| +import re
|
| +import shutil
|
| +import sys
|
| +
|
| +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
|
| +sys.path.insert(0, os.path.join(SCRIPT_DIR, 'pylib'))
|
| +
|
| +from mojom.error import Error
|
| +from mojom.parse.parser import Parse
|
| +from mojom.parse.translate import Translate
|
| +
|
| +def mojom_path(name, namespace, attributes):
|
| + package_name = attributes['DartPackage']
|
| + if package_name == None:
|
| + package_name = 'mojom'
|
| + elements = [package_name, 'lib']
|
| + elements.extend(namespace.split('.'))
|
| + elements.append("%s.dart" % name)
|
| + return os.path.join(*elements)
|
| +
|
| +
|
| +def process_mojom(path_to_mojom):
|
| + filename = os.path.abspath(path_to_mojom)
|
| + name = os.path.basename(filename)
|
| +
|
| + # Read in mojom file.
|
| + try:
|
| + with open(filename) as f:
|
| + source = f.read()
|
| + except IOError:
|
| + print("Error reading %s" % filename)
|
| + sys.exit(2)
|
| +
|
| + # Parse
|
| + try:
|
| + tree = Parse(source, name)
|
| + except Error:
|
| + print("Error parsing %s" % filename)
|
| + sys.exit(2)
|
| +
|
| + mojom = Translate(tree, name)
|
| +
|
| + # Output path
|
| + print(mojom_path(mojom['name'], mojom['namespace'], mojom['attributes']))
|
| +
|
| +
|
| +def main():
|
| + parser = argparse.ArgumentParser(description='Output list of ')
|
| + parser.add_argument('--mojoms',
|
| + metavar='mojoms',
|
| + nargs='+',
|
| + required=True)
|
| + args = parser.parse_args()
|
| +
|
| + for mojom in args.mojoms:
|
| + process_mojom(mojom)
|
| +
|
| + return 0
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + sys.exit(main())
|
|
|