| Index: tools/metrics/histograms/print_style.py
|
| diff --git a/remoting/tools/jscompile.py b/tools/metrics/histograms/print_style.py
|
| old mode 100755
|
| new mode 100644
|
| similarity index 12%
|
| copy from remoting/tools/jscompile.py
|
| copy to tools/metrics/histograms/print_style.py
|
| index 0f06964696e185b1dbdd63af960091233f4b40b0..58ab81e4a99b5352b61da41e22798050ecf67d99
|
| --- a/remoting/tools/jscompile.py
|
| +++ b/tools/metrics/histograms/print_style.py
|
| @@ -1,49 +1,53 @@
|
| -#!/usr/bin/python
|
| # Copyright 2014 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 subprocess
|
| -import sys
|
| +"""Holds the constants for pretty printing histograms.xml."""
|
| +
|
| import os
|
| +import sys
|
| +
|
| +# Import the metrics/common module for pretty print xml.
|
| +sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common'))
|
| +import pretty_print_xml
|
| +
|
| +# Desired order for tag attributes; attributes listed here will appear first,
|
| +# and in the same order as in these lists.
|
| +# { tag_name: [attribute_name, ...] }
|
| +ATTRIBUTE_ORDER = {
|
| + 'enum': ['name', 'type'],
|
| + 'histogram': ['name', 'enum', 'units'],
|
| + 'int': ['value', 'label'],
|
| + 'fieldtrial': ['name', 'separator', 'ordering'],
|
| + 'group': ['name', 'label'],
|
| + 'affected-histogram': ['name'],
|
| + 'with-group': ['name'],
|
| +}
|
| +
|
| +# Tag names for top-level nodes whose children we don't want to indent.
|
| +TAGS_THAT_DONT_INDENT = [
|
| + 'histogram-configuration',
|
| + 'histograms',
|
| + 'fieldtrials',
|
| + 'enums'
|
| +]
|
| +
|
| +# Extra vertical spacing rules for special tag names.
|
| +# {tag_name: (newlines_after_open, newlines_before_close, newlines_after_close)}
|
| +TAGS_THAT_HAVE_EXTRA_NEWLINE = {
|
| + 'histogram-configuration': (2, 1, 1),
|
| + 'histograms': (2, 1, 1),
|
| + 'fieldtrials': (2, 1, 1),
|
| + 'enums': (2, 1, 1),
|
| + 'histogram': (1, 1, 1),
|
| + 'enum': (1, 1, 1),
|
| + 'fieldtrial': (1, 1, 1),
|
| +}
|
| +
|
| +# Tags that we allow to be squished into a single line for brevity.
|
| +TAGS_THAT_ALLOW_SINGLE_LINE = [
|
| + 'summary',
|
| + 'int',
|
| +]
|
| +
|
|
|
| -DESCRIPTION = '''Run the given JavaScript files through jscompile.'''
|
| -FILES_HELP = '''A list of Javascript files. The Javascript files should include
|
| -files that contain definitions of types or functions that are known to Chrome
|
| -but not to jscompile.'''
|
| -STAMP_HELP = 'Timestamp file to update on success.'
|
| -
|
| -def checkJavascript(js_files):
|
| - args = ['jscompile'] + js_files
|
| - result = subprocess.call(args)
|
| - return result == 0
|
| -
|
| -
|
| -def main():
|
| - parser = argparse.ArgumentParser(description = DESCRIPTION)
|
| - parser.add_argument('files', nargs = '+', help = FILES_HELP)
|
| - parser.add_argument('--success-stamp', dest = 'success_stamp',
|
| - help = STAMP_HELP)
|
| - options = parser.parse_args()
|
| -
|
| - js = []
|
| - for file in options.files:
|
| - name, extension = os.path.splitext(file)
|
| - if extension == '.js':
|
| - js.append(file)
|
| - else:
|
| - print >> sys.stderr, 'Unknown extension (' + extension + ') for ' + file
|
| - return 1
|
| -
|
| - if not checkJavascript(js):
|
| - return 1
|
| -
|
| - if options.success_stamp:
|
| - with open(options.success_stamp, 'w'):
|
| - os.utime(options.success_stamp, None)
|
| -
|
| - return 0
|
| -
|
| -if __name__ == '__main__':
|
| - sys.exit(main())
|
|
|