Index: chrome/browser/resources/safe_browsing/gen_file_type_proto.py |
diff --git a/chrome/browser/resources/safe_browsing/gen_file_type_proto.py b/chrome/browser/resources/safe_browsing/gen_file_type_proto.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..cbdaa3bd3a6b13a90723d8479bd19dd1c1885f4b |
--- /dev/null |
+++ b/chrome/browser/resources/safe_browsing/gen_file_type_proto.py |
@@ -0,0 +1,59 @@ |
+#!/usr/bin/python |
+# Copyright 2016 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. |
+ |
+""" |
+ Convert the ASCII download_file_types.asciipb proto into a binary resource. |
+""" |
+ |
+import optparse |
+import sys |
+ |
+import google.protobuf.text_format as text_format |
+ |
+def ConvertProto(opts): |
+ |
+ # Find the proto code |
+ sys.path.append(opts.path) |
+ import download_file_types_pb2 as config_pb2 |
+ |
+ # Read the ASCII |
+ ifile = open(opts.infile, 'r') |
+ ascii_pb_str = ifile.read() |
+ ifile.close() |
+ |
+ # Parse it into a structure PB |
+ pb = config_pb2.DownloadFileTypeConfig() |
+ text_format.Merge(ascii_pb_str, pb) |
+ |
+ # Serialize it |
+ binary_pb_str = pb.SerializeToString() |
+ |
+ # Write it to disk |
+ open(opts.outfile, 'w').write(binary_pb_str) |
+ |
+ |
+def main(): |
+ parser = optparse.OptionParser() |
+ parser.add_option('-i', '--infile', |
+ help='The ASCII DownloadFileType-proto file to read.') |
+ parser.add_option('-o', '--outfile', |
+ help='The binary file to write.') |
+ parser.add_option('-p', '--path', |
+ help='A directory path containing the '+ |
+ 'download_file_types_pb2.py module') |
+ (opts, args) = parser.parse_args() |
+ if opts.infile is None or opts.outfile is None or opts.path is None: |
+ parser.print_help() |
+ return 1 |
+ |
+ try: |
+ ConvertProto(opts) |
+ except Exception as e: |
+ print "ERROR: %s failed to parse ASCII proto\n%s: %s\n" % ( |
+ sys.argv[0], opts.infile, str(e)) |
+ return 1 |
+ |
+if __name__ == '__main__': |
+ sys.exit(main()) |