blob: 357e1a01973692a3424f31ec17502126bdf9432e [file] [log] [blame]
Jamie Gennisd1270ce2012-05-06 13:27:13 -07001#!/usr/bin/python
2
Jeff Brown595ae1e2012-05-22 14:52:13 -07003import httplib, urllib, subprocess, sys, config
Jamie Gennisd1270ce2012-05-06 13:27:13 -07004
5# Read all the Javascript files.
Jeff Brown595ae1e2012-05-22 14:52:13 -07006js_code = [('js_code', open(f).read()) for f in config.js_in_files]
Jamie Gennisd1270ce2012-05-06 13:27:13 -07007
8# Read all the CSS files and concatenate them.
Jeff Brown595ae1e2012-05-22 14:52:13 -07009css_code = ''.join(open(f).read() for f in config.css_in_files)
Jamie Gennisd1270ce2012-05-06 13:27:13 -070010
11# Define the parameters for the POST request and encode them in
12# a URL-safe format.
13params = urllib.urlencode(js_code + [
14 ('language', 'ECMASCRIPT5'),
15 ('compilation_level', 'SIMPLE_OPTIMIZATIONS'),
16 ('output_format', 'text'),
17 ('output_info', 'compiled_code'),
18])
19
20# Always use the following value for the Content-type header.
21headers = { "Content-type": "application/x-www-form-urlencoded" }
22conn = httplib.HTTPConnection('closure-compiler.appspot.com')
23conn.request('POST', '/compile', params, headers)
24response = conn.getresponse()
25data = response.read()
26conn.close
27
28if response.status != 200:
29 print sys.stderr, "error returned from JS compile service: %d" % response.status
30 sys.exit(1)
31
Jeff Brown595ae1e2012-05-22 14:52:13 -070032open(config.js_out_file, 'wt').write(data)
33print 'Generated %s. Check the file to see if errors occured!' % config.js_out_file
Jamie Gennisd1270ce2012-05-06 13:27:13 -070034
Jeff Brown595ae1e2012-05-22 14:52:13 -070035yuic_args = ['yui-compressor', '--type', 'css', '-o', config.css_out_file]
Jamie Gennisd1270ce2012-05-06 13:27:13 -070036p = subprocess.Popen(yuic_args, stdin=subprocess.PIPE)
37p.communicate(input=css_code)
38if p.wait() != 0:
Jeff Brown595ae1e2012-05-22 14:52:13 -070039 print 'Failed to generate %s.' % config.css_out_file
Jamie Gennisd1270ce2012-05-06 13:27:13 -070040 sys.exit(1)
41
Jeff Brown595ae1e2012-05-22 14:52:13 -070042print 'Generated %s.' % config.css_out_file