Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 #!/usr/bin/env python | |
| 2 # Copyright 2016 The Chromium Authors. All rights reserved. | |
| 3 # Use of this source code is governed by a BSD-style license that can be | |
| 4 # found in the LICENSE file. | |
| 5 | |
| 6 import argparse | |
| 7 import datetime | |
| 8 import os | |
| 9 import sys | |
| 10 | |
| 11 COPYRIGHT = """// Copyright {0} The Chromium Authors. All rights reserved. | |
| 12 // Use of this source code is governed by a BSD-style license that can be | |
| 13 // found in the LICENSE file.\n | |
| 14 """.format(datetime.date.today().year) | |
| 15 | |
| 16 def filter_header_files(inputs): | |
| 17 return [filename for filename in inputs if filename.endswith('.h')] | |
| 18 | |
| 19 def get_output_filename(input_filename, dest_dir): | |
| 20 return os.path.join(dest_dir, os.path.basename(input_filename)) | |
| 21 | |
| 22 def list_outputs(inputs, dest_dir): | |
| 23 outputs = [] | |
| 24 for filename in filter_header_files(inputs): | |
| 25 outputs.append(get_output_filename(filename, dest_dir)) | |
| 26 return ' '.join(outputs) | |
| 27 | |
| 28 def generate_headers(inputs, dest_dir): | |
|
baxley
2016/02/20 01:11:51
Would it make any sense to rm the dest_dir? I know
rohitrao (ping after 24h)
2016/02/20 01:18:52
I can't arbitrarily remove dest_dir because then w
| |
| 29 for filename in filter_header_files(inputs): | |
| 30 forwarding_header = get_output_filename(filename, dest_dir) | |
| 31 if not os.path.isfile(forwarding_header): | |
| 32 with open(forwarding_header, 'w') as header: | |
| 33 header.write(COPYRIGHT) | |
| 34 header.write('#import "{0}"\n'.format(filename)) | |
| 35 | |
| 36 def DoMain(argv): | |
| 37 parser = argparse.ArgumentParser(description='Generate forwarding headers.') | |
| 38 parser.add_argument('-o', '--list-outputs', action='store_true', | |
| 39 help='List output files and exit.') | |
| 40 parser.add_argument('-d', '--dest-dir', type=str, required=True, | |
| 41 help=('Output directory for forwarding headers.')) | |
| 42 parser.add_argument('filenames', metavar='filename', type=str, nargs='+', | |
| 43 help='Input filenames.') | |
| 44 | |
| 45 args = parser.parse_args(argv) | |
| 46 if args.list_outputs: | |
| 47 return list_outputs(args.filenames, args.dest_dir) | |
|
baxley
2016/02/20 01:11:51
Does this list get printed?
rohitrao (ping after 24h)
2016/02/20 01:18:52
No, it never gets printed anywhere =) It actually
| |
| 48 if args.dest_dir: | |
| 49 if not os.path.isdir(args.dest_dir): | |
| 50 os.makedirs(args.dest_dir) | |
| 51 generate_headers(args.filenames, args.dest_dir) | |
| 52 return | |
| 53 print >>sys.stderr, 'Neither -o nor -d passed, unsure what to do.' | |
| 54 | |
| 55 if __name__ == '__main__': | |
| 56 DoMain(sys.argv[1:]) | |
| OLD | NEW |