From 15931a1df230523c18cf11189d95c3d1ddc64b07 Mon Sep 17 00:00:00 2001 From: Joshua Litt <joshualitt@google.com> Date: Fri, 4 Apr 2014 16:59:04 -0700 Subject: [PATCH] Small fixes to script based off of cry-infra Change-Id: I5a65d6fdb27516aefda0473ac45b05186cf0913c --- test/android/scrape_gtest_log.py | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/test/android/scrape_gtest_log.py b/test/android/scrape_gtest_log.py index c159c89383..487845c270 100644 --- a/test/android/scrape_gtest_log.py +++ b/test/android/scrape_gtest_log.py @@ -13,16 +13,45 @@ waterfall to gather json results mixed in with gtest logs. This is dubious software engineering. """ +import getopt import json +import os import re import sys def main(): + if len(sys.argv) != 3: + print "Expects a file to write json to!" + exit(1) + + try: + opts, _ = \ + getopt.getopt(sys.argv[1:], \ + 'o:', ['output-json=']) + except getopt.GetOptError: + print 'scrape_gtest_log.py -o <output_json>' + sys.exit(2) + + output_json = '' + for opt, arg in opts: + if opt in ('-o', '--output-json'): + output_json = os.path.join(arg) + blob = sys.stdin.read() json_string = '[' + ','.join('{' + x + '}' for x in re.findall(r'{([^}]*.?)}', blob)) + ']' - print json.dumps(json.loads(json_string), indent=4, sort_keys=True) + print blob + + output = json.dumps(json.loads(json_string), indent=4, sort_keys=True) + print output + + path = os.path.dirname(output_json) + if path and not os.path.exists(path): + os.makedirs(path) + + outfile = open(output_json, 'w') + outfile.write(output) if __name__ == '__main__': sys.exit(main()) -- GitLab