| #!/usr/bin/python |
| |
| # Copyright 2014 Google Inc. |
| # |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # A simple template processing script. |
| |
| import optparse |
| import os |
| import sys |
| |
| parser = optparse.OptionParser() |
| parser.add_option('-i', '--input') |
| parser.add_option('-o', '--output') |
| parser.add_option( |
| '-k', '--keyword_substitution', action='append', nargs=2, |
| metavar=('KEY', 'VALUE'), help='Changes KEY to VALUE in the template.') |
| parser.add_option( |
| '-p', '--path_substitution', action='append', nargs=2, |
| metavar=('KEY', 'PATH'), |
| help='Makes PATH absolute then changes KEY to PATH in the template.') |
| |
| (args, _) = parser.parse_args() |
| |
| input = sys.stdin |
| if args.input: |
| input = open(args.input, 'r') |
| |
| output = sys.stdout |
| if args.output: |
| output = open(args.output, 'w') |
| |
| path_subs = None |
| if args.path_substitution: |
| path_subs = [ |
| [sub[0], os.path.abspath(sub[1])] for sub in args.path_substitution |
| ] |
| |
| for line in input: |
| if args.keyword_substitution: |
| for (key, value) in args.keyword_substitution: |
| line = line.replace(key, value) |
| if path_subs: |
| for (key, path) in path_subs: |
| line = line.replace(key, path) |
| output.write(line) |
| |
| input.close() |
| output.close() |