#!/usr/bin/env python

from optparse import OptionParser
import os
import os.path
import re
import sys


def main(argv):

    option_parser = OptionParser()
    option_parser.add_option('--require', action='append')
    options, args = option_parser.parse_args(argv[1:])

    requires = set(options.require or ())
    for arg in args:
        for dirpath, dirnames, filenames in os.walk(arg):
            for filename in filenames:
                if not filename.endswith('.js'):
                    continue
                for line in open(os.path.join(dirpath, filename)):
                    m = re.match(r'goog\.provide\(\'(.*)\'\);', line)
                    if m:
                        requires.add(m.group(1))

    for require in sorted(requires):
        sys.stdout.write('goog.require(\'%s\');\n' % (require,))


if __name__ == '__main__':
    sys.exit(main(sys.argv))
