summaryrefslogtreecommitdiffstats
path: root/webkit/build
diff options
context:
space:
mode:
authormnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-12 13:39:42 +0000
committermnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-12 13:39:42 +0000
commit34740a9613c84c572da3a01f3b5637734dac671e (patch)
tree97f9908a8b6ca8c78f3c17824b887db21edca89f /webkit/build
parent8743ec41593c6e3377f2a8377e553a21a505add6 (diff)
downloadchromium_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-xwebkit/build/concatenate_js_files.py64
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))