Commit d6a89902 by ara818

Add closure compiler

parent 5f0d598b
......@@ -20,6 +20,9 @@ COMPRESS_YUI_BINARY = getattr(settings, 'COMPRESS_YUI_BINARY', 'java -jar yuicom
COMPRESS_YUI_CSS_ARGUMENTS = getattr(settings, 'COMPRESS_YUI_CSS_ARGUMENTS', '')
COMPRESS_YUI_JS_ARGUMENTS = getattr(settings, 'COMPRESS_YUI_JS_ARGUMENTS', '')
COMPRESS_CLOSURE_BINARY = getattr(settings, 'COMPRESS_CLOSURE_BINARY', 'java -jar compiler.jar')
COMPRESS_CLOSURE_JS_ARGUMENTS = getattr(settings, 'COMPRESS_CLOSURE_JS_ARGUMENTS', '')
if COMPRESS_CSS_FILTERS is None:
COMPRESS_CSS_FILTERS = []
......
import subprocess
from compress.conf import settings
from compress.filter_base import FilterBase, FilterError
class ClosureCompressorFilter(FilterBase):
def filter_common(self, content, type_, arguments):
command = '%s %s' % (settings.COMPRESS_CLOSURE_BINARY, arguments)
if self.verbose:
command += ' --verbose'
print command
p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, \
stdin=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(content)
p.stdin.close()
filtered_css = p.stdout.read()
p.stdout.close()
err = p.stderr.read()
p.stderr.close()
if p.wait() != 0:
if not err:
err = 'Unable to apply Closure Compressor filter'
raise FilterError(err)
if self.verbose:
print err
return filtered_css
def filter_js(self, js):
return self.filter_common(js, 'js', settings.COMPRESS_CLOSURE_JS_ARGUMENTS)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment