| # Copyright 2017 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 a list of all files in a directory. |
| |
| This script takes in a directory and an output file name as input. |
| It then reads the directory and creates a list of all file names |
| in that directory. The list is written to the output file. |
| There is also an option to pass in '-p' or '--pattern' |
| which will check each file name against a regular expression |
| pattern that is passed in. Only files which match the regex |
| will be written to the list. |
| """ |
| |
| import os |
| import re |
| import sys |
| |
| from cStringIO import StringIO |
| from optparse import OptionParser |
| |
| sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), |
| "pylib")) |
| |
| from mojom.generate.generator import WriteFile |
| |
| |
| def main(): |
| parser = OptionParser() |
| parser.add_option('-d', '--directory', help='Read files from DIRECTORY') |
| parser.add_option('-o', '--output', help='Write list to FILE') |
| parser.add_option('-p', |
| '--pattern', |
| help='Only reads files that name matches PATTERN', |
| default=".") |
| (options, _) = parser.parse_args() |
| pattern = re.compile(options.pattern) |
| files = [f for f in os.listdir(options.directory) if pattern.match(f)] |
| |
| stream = StringIO() |
| for f in files: |
| print >> stream, f |
| |
| WriteFile(stream.getvalue(), options.output) |
| stream.close() |
| |
| if __name__ == '__main__': |
| sys.exit(main()) |