#!/usr/bin/env 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. """Scans the Chromium source of UseCounter, formats the Feature enum for histograms.xml and merges it. This script can also generate a python code snippet to put in uma.py of Chromium Dashboard. Make sure that you review the output for correctness. """ import optparse import os import sys sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) from update_histogram_enum import ReadHistogramValues from update_histogram_enum import UpdateHistogramEnum def PrintEnumForDashboard(enum_dict): """Prints enum_items formatted for use in uma.py of Chromium dashboard.""" for key in sorted(enum_dict.iterkeys()): print ' %d: \'%s\',' % (key, enum_dict[key]) if __name__ == '__main__': parser = optparse.OptionParser() parser.add_option('--for-dashboard', action='store_true', dest='dashboard', default=False, help='Print enum definition formatted for use in uma.py of ' 'Chromium dashboard developed at ' 'https://github.com/GoogleChrome/chromium-dashboard') options, args = parser.parse_args() source_path = \ '../../../third_party/WebKit/Source/core/frame/UseCounter.h' START_MARKER = '^enum Feature {' END_MARKER = '^NumberOfFeatures' if options.dashboard: enum_dict = ReadHistogramValues(source_path, START_MARKER, END_MARKER) PrintEnumForDashboard(enum_dict) else: UpdateHistogramEnum( histogram_enum_name='FeatureObserver', source_enum_path=source_path, start_marker=START_MARKER, end_marker=END_MARKER)