| #!/usr/bin/python |
| |
| ''' |
| Copyright 2013 Google Inc. |
| |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| ''' |
| |
| ''' |
| Rewrites a JSON file to use Python's standard JSON pretty-print format, |
| so that subsequent runs of rebaseline.py will generate useful diffs |
| (only the actual checksum differences will show up as diffs, not obscured |
| by format differences). |
| |
| Should not modify the JSON contents in any meaningful way. |
| ''' |
| |
| # System-level imports |
| import argparse |
| import os |
| import sys |
| |
| # Imports from within Skia |
| # |
| # We need to add the 'gm' directory, so that we can import gm_json.py within |
| # that directory. That script allows us to parse the actual-results.json file |
| # written out by the GM tool. |
| # Make sure that the 'gm' dir is in the PYTHONPATH, but add it at the *end* |
| # so any dirs that are already in the PYTHONPATH will be preferred. |
| # |
| # This assumes that the 'gm' directory has been checked out as a sibling of |
| # the 'tools' directory containing this script, which will be the case if |
| # 'trunk' was checked out as a single unit. |
| GM_DIRECTORY = os.path.realpath( |
| os.path.join(os.path.dirname(os.path.dirname(__file__)), 'gm')) |
| if GM_DIRECTORY not in sys.path: |
| sys.path.append(GM_DIRECTORY) |
| import gm_json |
| |
| def Reformat(filename): |
| print 'Reformatting file %s...' % filename |
| gm_json.WriteToFile(gm_json.LoadFromFile(filename), filename) |
| |
| def _Main(): |
| parser = argparse.ArgumentParser(description='Reformat JSON files in-place.') |
| parser.add_argument('filenames', metavar='FILENAME', nargs='+', |
| help='file to reformat') |
| args = parser.parse_args() |
| for filename in args.filenames: |
| Reformat(filename) |
| sys.exit(0) |
| |
| if __name__ == '__main__': |
| _Main() |