summaryrefslogtreecommitdiff
path: root/misc/openlayers/tools/uglify_js.py
diff options
context:
space:
mode:
Diffstat (limited to 'misc/openlayers/tools/uglify_js.py')
-rw-r--r--misc/openlayers/tools/uglify_js.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/misc/openlayers/tools/uglify_js.py b/misc/openlayers/tools/uglify_js.py
new file mode 100644
index 0000000..50ef098
--- /dev/null
+++ b/misc/openlayers/tools/uglify_js.py
@@ -0,0 +1,35 @@
+"""Utility to use the Uglify JS Compiler CLI from Python."""
+
+import logging
+import subprocess
+
+
+def check_available():
+ """ Returns whether the uglify-js tool is available. """
+ subprocess.check_output(['which', 'uglifyjs'])
+
+
+def compile(source_paths, flags=None):
+ """
+ Prepares command-line call to uglify-js compiler.
+
+ Args:
+ source_paths: Source paths to build, in order.
+ flags: A list of additional flags to pass on to uglify-js.
+
+ Returns:
+ The compiled source, as a string, or None if compilation failed.
+ """
+
+ args = ['uglifyjs']
+ args.extend(source_paths)
+ args.extend(['-c', '-m'])
+ if flags:
+ args += flags
+
+ logging.info('Compiling with the following command: %s', ' '.join(args))
+
+ try:
+ return subprocess.check_output(args)
+ except subprocess.CalledProcessError:
+ return