Index: scripts/tools/gzjsondump.py |
diff --git a/scripts/tools/gzjsondump.py b/scripts/tools/gzjsondump.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..7079ac4df956b3b0a3b523d4b0276fe29c233061 |
--- /dev/null |
+++ b/scripts/tools/gzjsondump.py |
@@ -0,0 +1,60 @@ |
+#!/usr/bin/env python |
+# Copyright (c) 2013 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. |
+ |
+import argparse |
+import base64 |
+import json |
+import os |
+import sys |
+import zlib |
+ |
+sys.path.insert(0, |
+ os.path.join(os.path.dirname(__file__), os.pardir)) |
+ # (/path/to/build/scripts) |
+import common.env |
+common.env.Install() |
+ |
+from common import chromium_utils |
+ |
+def main(): |
+ parser = argparse.ArgumentParser() |
+ parser.add_argument('-o', '--out', default=sys.stdout, |
+ help='Write the output content here. If omitted, output will be written ' |
+ 'to STDOUT.') |
+ def add_value_arg(p): |
+ p.add_argument('value', nargs='?', |
+ help='The intput content. If omitted, content will be read from STDIN.') |
+ subparsers = parser.add_subparsers() |
+ |
+ # encode |
+ p = subparsers.add_parser('encode') |
+ def encode(value, out): |
+ obj = json.loads(value) |
+ out.write(chromium_utils.b64_gz_json_encode(obj)) |
+ p.set_defaults(func=encode) |
+ add_value_arg(p) |
+ |
+ # decode |
+ p = subparsers.add_parser('decode') |
+ def decode(value, out): |
+ obj = chromium_utils.convert_gz_json_type(value) |
+ json.dump(obj, out, sort_keys=True, separators=(',', ':')) |
+ p.set_defaults(func=decode) |
+ add_value_arg(p) |
+ |
+ opts = parser.parse_args() |
+ |
+ # Read input value. |
+ value = opts.value |
+ if not value: |
+ value = sys.stdin.read() |
+ |
+ # Generate output. |
+ opts.func(value, opts.out) |
+ return 0 |
+ |
+ |
+if __name__ == '__main__': |
+ sys.exit(main()) |