chromium/third_party/closure_compiler/js_library.py

# Copyright 2017 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Generates a file describing the js_library to be used by js_binary action.

This script takes in a list of sources and dependencies as described by a
js_library action.  It creates a file listing the sources and dependencies
that can later be used by a js_binary action to compile the javascript.
"""

from argparse import ArgumentParser


def main():
  parser = ArgumentParser()
  parser.add_argument('-s', '--sources', nargs='*', default=[],
                      help='List of js source files')
  parser.add_argument('-e', '--externs', nargs='*', default=[],
                      help='List of js source files')
  parser.add_argument('-o', '--output', help='Write list to output')
  parser.add_argument('-d', '--deps', nargs='*', default=[],
                      help='List of js_library dependencies')
  args = parser.parse_args()

  with open(args.output, 'w') as out:
    out.write('sources:\n')
    for s in args.sources:
      out.write('%s\n' % s)
    out.write('deps:\n')
    for d in args.deps:
      out.write('%s\n' % d)
    out.write('externs:\n')
    for e in args.externs:
      out.write('%s\n' % e)

if __name__ == '__main__':
  main()