Componentize //chrome/browser/ui/omnibox
[chromium-blink-merge.git] / third_party / jstemplate / compile.py
blob3e75807525ccdc8f5fef6b858da5d25286bb9cf1
1 #!/usr/bin/env python
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
6 """Combines the javascript files needed by jstemplate into a single file."""
8 import httplib
9 import urllib
12 def main():
13 srcs = ['util.js', 'jsevalcontext.js', 'jstemplate.js', 'exports.js']
14 out = 'jstemplate_compiled.js'
16 # Wrap the output in an anonymous function to prevent poluting the global
17 # namespace.
18 output_wrapper = '(function(){%s})()'
20 # Define the parameters for the POST request and encode them in a URL-safe
21 # format. See http://code.google.com/closure/compiler/docs/api-ref.html for
22 # API reference.
23 params = urllib.urlencode(
24 map(lambda src: ('js_code', file(src).read()), srcs) +
26 ('compilation_level', 'ADVANCED_OPTIMIZATIONS'),
27 ('output_format', 'text'),
28 ('output_info', 'compiled_code'),
31 # Always use the following value for the Content-type header.
32 headers = {'Content-type': 'application/x-www-form-urlencoded'}
33 conn = httplib.HTTPConnection('closure-compiler.appspot.com')
34 conn.request('POST', '/compile', params, headers)
35 response = conn.getresponse()
36 out_file = file(out, 'w')
37 out_file.write(output_wrapper % response.read())
38 out_file.close()
39 conn.close()
40 return 0
43 if __name__ == '__main__':
44 sys.exit(main())