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 |