1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #!/usr/bin/env python3
- # Copyright 2022 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.
- import argparse
- import os
- import sys
- sys.path += [os.path.dirname(os.path.dirname(__file__))]
- from json_data_generator.generator import JSONDataGenerator
- from json_data_generator.util import (GetFileNameWithoutExtensionFromPath,
- JoinPath)
- def main():
- parser = argparse.ArgumentParser(
- description='Generate data from JSON5 file.')
- parser.add_argument('--templates',
- nargs='+',
- help="Jinja template files (*.jinja)")
- parser.add_argument(
- '--template-helper',
- help='additional python file to provide custom Jinja globals/filters')
- parser.add_argument('--out-dir', help='directory to write output to')
- parser.add_argument('--sources', nargs='+', help='source json5 data files')
- args = parser.parse_args()
- generator = JSONDataGenerator(args.out_dir)
- generator.AddJSONFilesToModel(args.sources)
- generator.out_dir = args.out_dir
- os.makedirs(args.out_dir, exist_ok=True)
- for template_path in args.templates:
- out_file_path = JoinPath(
- args.out_dir, GetFileNameWithoutExtensionFromPath(template_path))
- with open(out_file_path, 'w') as f:
- f.write(
- generator.RenderTemplate(template_path, args.template_helper))
- return 0
- if __name__ == '__main__':
- sys.exit(main())
|