Index: tools/metrics/histograms/pretty_print.py |
diff --git a/tools/metrics/histograms/pretty_print.py b/tools/metrics/histograms/pretty_print.py |
index d9e0327952beb283a0ef484229851544735a09e8..41cc2b6126cba9876d454dd66a56bbd0cbe107c8 100755 |
--- a/tools/metrics/histograms/pretty_print.py |
+++ b/tools/metrics/histograms/pretty_print.py |
@@ -28,6 +28,7 @@ from google import path_utils |
# Import the metrics/common module. |
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) |
import diff_util |
+import presubmit_util |
# Tags whose children we want to alphabetize. The key is the parent tag name, |
# and the value is a pair of the tag name of the children we want to sort, |
@@ -130,62 +131,10 @@ def PrettyPrint(raw_xml): |
tree = TransformByAlphabetizing(tree) |
return print_style.GetPrintStyle().PrettyPrintNode(tree) |
- |
def main(): |
- logging.basicConfig(level=logging.INFO) |
- |
- presubmit = ('--presubmit' in sys.argv) |
- |
- histograms_filename = 'histograms.xml' |
- histograms_backup_filename = 'histograms.before.pretty-print.xml' |
- |
- # If there is a histograms.xml in the current working directory, use that. |
- # Otherwise, use the one residing in the same directory as this script. |
- histograms_dir = os.getcwd() |
- if not os.path.isfile(os.path.join(histograms_dir, histograms_filename)): |
- histograms_dir = path_utils.ScriptDir() |
- |
- histograms_pathname = os.path.join(histograms_dir, histograms_filename) |
- histograms_backup_pathname = os.path.join(histograms_dir, |
- histograms_backup_filename) |
- |
- logging.info('Loading %s...' % os.path.relpath(histograms_pathname)) |
- with open(histograms_pathname, 'rb') as f: |
- xml = f.read() |
- |
- # Check there are no CR ('\r') characters in the file. |
- if '\r' in xml: |
- logging.info('DOS-style line endings (CR characters) detected - these are ' |
- 'not allowed. Please run dos2unix %s' % histograms_filename) |
- sys.exit(1) |
- |
- logging.info('Pretty-printing...') |
- try: |
- pretty = PrettyPrint(xml) |
- except Error: |
- logging.error('Aborting parsing due to fatal errors.') |
- sys.exit(1) |
- |
- if xml == pretty: |
- logging.info('%s is correctly pretty-printed.' % histograms_filename) |
- sys.exit(0) |
- if presubmit: |
- logging.info('%s is not formatted correctly; run pretty_print.py to fix.' % |
- histograms_filename) |
- sys.exit(1) |
- if not diff_util.PromptUserToAcceptDiff( |
- xml, pretty, |
- 'Is the prettified version acceptable?'): |
- logging.error('Aborting') |
- return |
- |
- logging.info('Creating backup file %s' % histograms_backup_filename) |
- shutil.move(histograms_pathname, histograms_backup_pathname) |
- |
- logging.info('Writing new %s file' % histograms_filename) |
- with open(histograms_pathname, 'wb') as f: |
- f.write(pretty) |
- |
+ presubmit_util.DoPresubmitMain(sys.argv, 'histograms.xml', |
+ 'histograms.before.pretty-print.xml', |
+ 'pretty_print.py', PrettyPrint) |
if __name__ == '__main__': |
main() |