diff --git a/web/tools/minimise.py b/web/tools/minimise.py new file mode 100755 index 000000000..b7dcf5383 --- /dev/null +++ b/web/tools/minimise.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python + +########################################################################## +# +# pgAdmin 4 - PostgreSQL Tools +# +# Copyright (C) 2013 - 2017, The pgAdmin Development Team +# This software is released under the PostgreSQL Licence +# +# config.py - Core application configuration settings +# +########################################################################## + +"""Minimises CSS and JS files found under the given directory""" + +import argparse +import os +from rcssmin import cssmin +from rjsmin import jsmin + +parser = argparse.ArgumentParser() +parser.add_argument("directory", + help="the directory to minimise recursively") +args = parser.parse_args() + +def minimise(dummy, dirname, filesindir): + """ + Minimises any .js or .css files found + Args: + dummy: unused + dirname: the directory in which to minimise files + filesindir: lists the files in the directory + """ + for fname in filesindir: + if fname[-4:] == '.css' and fname[-8:] != '.min.css': + oldfile = os.path.join(dirname, fname) + newfile = os.path.join(dirname, fname[:-4] + '.min.css') + + print("CSS: Minimising: " + oldfile + + " -> " + newfile) + + fp_old = open(oldfile, "rb") + fp_new = open(newfile, "wb") + + fp_new.write(cssmin(fp_old.read(), keep_bang_comments=False)) + + fp_old.close() + fp_new.close() + + elif fname[-3:] == '.js' and fname[-7:] != '.min.js': + oldfile = os.path.join(dirname, fname) + newfile = os.path.join(dirname, fname[:-3] + '.min.js') + + print("JS : Minimising: " + oldfile + + " -> " + newfile) + + fp_old = open(oldfile, "rb") + fp_new = open(newfile, "wb") + + fp_new.write(jsmin(fp_old.read(), keep_bang_comments=False)) + + fp_old.close() + fp_new.close() + +os.path.walk(args.directory, minimise, None)