diff options
author | mnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-12 13:39:42 +0000 |
---|---|---|
committer | mnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-12 13:39:42 +0000 |
commit | 34740a9613c84c572da3a01f3b5637734dac671e (patch) | |
tree | 97f9908a8b6ca8c78f3c17824b887db21edca89f /webkit/build | |
parent | 8743ec41593c6e3377f2a8377e553a21a505add6 (diff) | |
download | chromium_src-34740a9613c84c572da3a01f3b5637734dac671e.zip chromium_src-34740a9613c84c572da3a01f3b5637734dac671e.tar.gz chromium_src-34740a9613c84c572da3a01f3b5637734dac671e.tar.bz2 |
DevTools: concatenate JS files into one big devtools.js file (similar to inspector.js in WebKit)
To use old-style unconcatenated sources, set 'debug_devtools' variable.
BUG=26911
TEST=none
Review URL: http://codereview.chromium.org/376022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31782 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/build')
-rwxr-xr-x | webkit/build/concatenate_js_files.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/webkit/build/concatenate_js_files.py b/webkit/build/concatenate_js_files.py new file mode 100755 index 0000000..b6d7efc --- /dev/null +++ b/webkit/build/concatenate_js_files.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python +# Copyright (c) 2009 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. + +# This script concatenates in place JS files in the order specified +# using <script> tags in a given 'order.html' file. + +from HTMLParser import HTMLParser +from cStringIO import StringIO +import os.path +import sys + +class OrderedJSFilesExtractor(HTMLParser): + + def __init__(self, order_html_name): + HTMLParser.__init__(self) + self.ordered_js_files = [] + order_html = open(order_html_name, 'r') + self.feed(order_html.read()) + + def handle_starttag(self, tag, attrs): + if tag == 'script': + attrs_dict = dict(attrs) + if ('type' in attrs_dict and attrs_dict['type'] == 'text/javascript' and + 'src' in attrs_dict): + self.ordered_js_files.append(attrs_dict['src']) + +def main(argv): + + if len(argv) < 3: + print('usage: %s order.html input_file_1 input_file_2 ... ' + 'output_file' % argv[0]) + return 1 + + output_file_name = argv.pop() + + full_paths = {} + for full_path in argv[2:]: + (dir_name, file_name) = os.path.split(full_path) + if file_name.endswith('.js'): + full_paths[file_name] = full_path + + extractor = OrderedJSFilesExtractor(argv[1]) + output = StringIO() + + for input_file_name in extractor.ordered_js_files: + if not input_file_name in full_paths: + print('A full path to %s isn\'t specified in command line. ' + 'Probably, you have an obsolete script entry in %s' % + (input_file_name, argv[1])) + output.write('/* %s */\n\n' % input_file_name) + input_file = open(full_paths[input_file_name], 'r') + output.write(input_file.read()) + output.write('\n') + input_file.close() + + output_file = open(output_file_name, 'w') + output_file.write(output.getvalue()) + output_file.close() + output.close() + +if __name__ == '__main__': + sys.exit(main(sys.argv)) |