summaryrefslogtreecommitdiff
path: root/lib/grappelli/media/js/compress.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/grappelli/media/js/compress.py')
-rw-r--r--lib/grappelli/media/js/compress.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/grappelli/media/js/compress.py b/lib/grappelli/media/js/compress.py
new file mode 100644
index 0000000..8d2caa2
--- /dev/null
+++ b/lib/grappelli/media/js/compress.py
@@ -0,0 +1,47 @@
+#!/usr/bin/env python
+import os
+import optparse
+import subprocess
+import sys
+
+here = os.path.dirname(__file__)
+
+def main():
+ usage = "usage: %prog [file1..fileN]"
+ description = """With no file paths given this script will automatically
+compress all jQuery-based files of the admin app. Requires the Google Closure
+Compiler library and Java version 6 or later."""
+ parser = optparse.OptionParser(usage, description=description)
+ parser.add_option("-c", dest="compiler", default="~/bin/compiler.jar",
+ help="path to Closure Compiler jar file")
+ parser.add_option("-v", "--verbose",
+ action="store_true", dest="verbose")
+ parser.add_option("-q", "--quiet",
+ action="store_false", dest="verbose")
+ (options, args) = parser.parse_args()
+
+ compiler = os.path.expanduser(options.compiler)
+ if not os.path.exists(compiler):
+ sys.exit("Google Closure compiler jar file %s not found. Please use the -c option to specify the path." % compiler)
+
+ if not args:
+ if options.verbose:
+ sys.stdout.write("No filenames given; defaulting to admin scripts\n")
+ args = [os.path.join(here, f) for f in [
+ "actions.js", "collapse.js", "inlines.js", "prepopulate.js"]]
+
+ for arg in args:
+ if not arg.endswith(".js"):
+ arg = arg + ".js"
+ to_compress = os.path.expanduser(arg)
+ if os.path.exists(to_compress):
+ to_compress_min = "%s.min.js" % "".join(arg.rsplit(".js"))
+ cmd = "java -jar %s --js %s --js_output_file %s" % (compiler, to_compress, to_compress_min)
+ if options.verbose:
+ sys.stdout.write("Running: %s\n" % cmd)
+ subprocess.call(cmd.split())
+ else:
+ sys.stdout.write("File %s not found. Sure it exists?\n" % to_compress)
+
+if __name__ == '__main__':
+ main()