Chromium Code Reviews| Index: third_party/closure_compiler/js_minify.py |
| diff --git a/third_party/closure_compiler/js_minify.py b/third_party/closure_compiler/js_minify.py |
| new file mode 100755 |
| index 0000000000000000000000000000000000000000..1d969e88abe375acfbfaeedea340de3fa3447453 |
| --- /dev/null |
| +++ b/third_party/closure_compiler/js_minify.py |
| @@ -0,0 +1,47 @@ |
| +#!/usr/bin/python |
| +# Copyright 2016 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. |
| +''' Javascript minifier using the closure compiler |
| + |
| +This minifier strips spaces and comments out of Javascript using the closure |
| +compiler. It takes the original Javascript on standard input, and outputs |
| +the minified output on standard output. |
| + |
| +Any errors or other messages from the compiler are output on standard error. |
| +''' |
| + |
| +import argparse |
| +import sys |
| +import tempfile |
| +from compile2 import Checker |
|
Dan Beam
2016/07/28 16:27:05
nit: \n\n between top-level
aberent
2016/08/02 11:43:29
Done.
|
| + |
| +def Minify(source): |
| + parser = argparse.ArgumentParser() |
| + parser.add_argument("-c", "--closure_args", nargs=argparse.ZERO_OR_MORE, |
| + help="Arguments passed directly to the Closure compiler") |
| + args = parser.parse_args() |
| + closure_args = args.closure_args + ['compilation_level=WHITESPACE_ONLY'] |
| + with tempfile.NamedTemporaryFile(suffix='.js') as t1, \ |
| + tempfile.NamedTemporaryFile(suffix='.js') as t2: |
|
Dan Beam
2016/07/28 16:27:05
how do these get deleted? should you be specifyin
aberent
2016/08/02 11:43:29
No, it is the default, as you might expect, for te
|
| + t1.write(source) |
| + t1.seek(0) |
| + checker = Checker() |
| + (compile_error, compile_stderr) = checker.check( |
| + [t1.name], out_file=t2.name, closure_args=closure_args) |
| + if compile_error: |
| + print compile_stderr |
| + t2.seek(0) |
| + result = t2.read() |
| + return result |
| + |
| + |
| +if __name__ == '__main__': |
| + orig_stdout = sys.stdout |
| + result = '' |
| + try: |
| + sys.stdout = sys.stderr |
| + result = Minify(sys.stdin.read()) |
| + finally: |
| + sys.stdout = orig_stdout |
| + print result |