#!/usr/bin/env python # Copyright (c) 2011 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. """Combines the javascript files needed by jstemplate into a single file.""" import httplib import urllib def main(): srcs = ['util.js', 'jsevalcontext.js', 'jstemplate.js', 'exports.js'] out = 'jstemplate_compiled.js' # Wrap the output in an anonymous function to prevent poluting the global # namespace. output_wrapper = '(function(){%s})()' # Define the parameters for the POST request and encode them in a URL-safe # format. See http://code.google.com/closure/compiler/docs/api-ref.html for # API reference. params = urllib.urlencode( map(lambda src: ('js_code', file(src).read()), srcs) + [ ('compilation_level', 'ADVANCED_OPTIMIZATIONS'), ('output_format', 'text'), ('output_info', 'compiled_code'), ]) # Always use the following value for the Content-type header. headers = {'Content-type': 'application/x-www-form-urlencoded'} conn = httplib.HTTPConnection('closure-compiler.appspot.com') conn.request('POST', '/compile', params, headers) response = conn.getresponse() out_file = file(out, 'w') out_file.write(output_wrapper % response.read()) out_file.close() conn.close() return 0 if __name__ == '__main__': sys.exit(main())