Chromium Code Reviews| Index: third_party/fontconfig/process-template.py |
| diff --git a/third_party/fontconfig/process-template.py b/third_party/fontconfig/process-template.py |
| new file mode 100755 |
| index 0000000000000000000000000000000000000000..b5273031a47872e960e9a8daf18368f3793f2a89 |
| --- /dev/null |
| +++ b/third_party/fontconfig/process-template.py |
| @@ -0,0 +1,49 @@ |
| +#!/usr/bin/python |
|
epoger
2014/01/08 19:40:22
Add copyright and documentation header?
|
| + |
| +import argparse |
| +import os |
| +import sys |
| + |
| +parser = argparse.ArgumentParser() |
| +parser.add_argument("-i", "--input") |
|
epoger
2014/01/08 19:40:22
Please be consistent with either single- or double
vandebo (ex-Chrome)
2014/01/08 21:24:15
Done.
|
| +parser.add_argument("-o", "--output") |
| +parser.add_argument( |
|
epoger
2014/01/08 19:40:22
I would suggest naming this arg --keyword_substitu
vandebo (ex-Chrome)
2014/01/08 21:24:15
Done.
|
| + "-s", "--substitution", action="append", nargs=2, metavar=('KEY', 'VALUE'), help="Changes @KEY@ to VALUE in the template.") |
|
bungeman-skia
2014/01/07 21:13:29
nit: this line is a bit long, looks like the next
vandebo (ex-Chrome)
2014/01/08 21:24:15
Done.
|
| +parser.add_argument( |
| + "-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: |
| + try: |
| + input = open(args.input, 'r') |
| + except IOError: |
|
epoger
2014/01/08 19:40:22
Why the manual try/except handling? If you just d
vandebo (ex-Chrome)
2014/01/08 21:24:15
Done.
|
| + sys.exit(1) |
| + |
| +output = sys.stdout |
| +if args.output: |
| + try: |
| + output = open(args.output, 'w') |
| + except IOError: |
| + sys.exit(1) |
| + |
| +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.substitution: |
| + for (key, value) in args.substitution: |
| + line = line.replace('@' + key + '@', value) |
|
epoger
2014/01/08 19:40:22
Rather than mandating the @ delimiters, why not ju
vandebo (ex-Chrome)
2014/01/08 21:24:15
Done.
|
| + if path_subs: |
| + for (key, path) in path_subs: |
| + line = line.replace('@' + key + '@', path) |
| + output.write(line) |
| + |
| +input.close() |
| +output.close() |