Commit 9e2db91b by Timothée Peignier

add uglifyjs filter

parent b1ec9cf0
...@@ -27,6 +27,9 @@ COMPRESS_YUI_JS_ARGUMENTS = getattr(settings, 'COMPRESS_YUI_JS_ARGUMENTS', '') ...@@ -27,6 +27,9 @@ COMPRESS_YUI_JS_ARGUMENTS = getattr(settings, 'COMPRESS_YUI_JS_ARGUMENTS', '')
COMPRESS_CLOSURE_BINARY = getattr(settings, 'COMPRESS_CLOSURE_BINARY', 'java -jar compiler.jar') COMPRESS_CLOSURE_BINARY = getattr(settings, 'COMPRESS_CLOSURE_BINARY', 'java -jar compiler.jar')
COMPRESS_CLOSURE_JS_ARGUMENTS = getattr(settings, 'COMPRESS_CLOSURE_JS_ARGUMENTS', '') COMPRESS_CLOSURE_JS_ARGUMENTS = getattr(settings, 'COMPRESS_CLOSURE_JS_ARGUMENTS', '')
COMPRESS_UGLIFYJS_BINARY = getattr(settings, 'COMPRESS_UGLIFYJS_BINARY', '/usr/local/bin/uglifyjs')
COMPRESS_UGLIFYJS_ARGUMENTS = getattr(settings, 'COMPRESS_UGLIFYJS_ARGUMENTS', '-nc')
if COMPRESS_CSS_FILTERS is None: if COMPRESS_CSS_FILTERS is None:
COMPRESS_CSS_FILTERS = [] COMPRESS_CSS_FILTERS = []
......
import subprocess
from compress.conf import settings
from compress.filter_base import FilterBase, FilterError
class UglifyJSCompressorFilter(FilterBase):
def filter_js(self, js):
command = '%s %s' % (settings.COMPRESS_UGLIFYJS_BINARY, settings.COMPRESS_UGLIFYJS_ARGUMENTS)
if self.verbose:
command += ' --verbose'
p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, \
stdin=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(js)
p.stdin.close()
filtered_js = p.stdout.read()
p.stdout.close()
err = p.stderr.read()
p.stderr.close()
if p.wait() != 0:
if not err:
err = 'Unable to apply UglifyJS Compressor filter'
raise FilterError(err)
if self.verbose:
print err
return filtered_js
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