Files
ThirdParty-6/ParaView-5.0.1/VTK/Web/JavaScript/Minimizer/build.py

88 lines
2.3 KiB
Python

#==============================================================================
#
# Program: ParaView
# Module: build.py
#
# Copyright (c) Kitware, Inc.
# All rights reserved.
# See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even
# the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the above copyright notice for more information.
#
#==============================================================================
try:
import argparse
except ImportError:
# since Python 2.6 and earlier don't have argparse, we simply provide
# the source for the same as _argparse and we use it instead.
import _argparse as argparse
import shutil
import StringIO
import string
import os
from datetime import date
import rjsmin
import rcssmin
parser = argparse.ArgumentParser(description="Concatenation and minimize Javascript files")
parser.add_argument('-b', help="Javascript banner")
parser.add_argument('-v', help="Version string to add to the header")
parser.add_argument('-i', nargs='*', help="Files to concatenate and minimize")
parser.add_argument('-o', help="Output file")
parser.add_argument('-m', help="Minimized output file")
args = parser.parse_args()
output = StringIO.StringIO()
isJavaScript = (args.o[-3:] == '.js')
# read in files
for file in args.i:
with open(file, 'r') as fp:
output.write(fp.read())
# Generate banner
with open(args.b, 'r') as fp:
template = string.Template(fp.read())
d = date.today()
vars = dict(version=args.v,
date=d.strftime("%Y-%m-%d"),
year=d.strftime("%Y"))
banner = template.substitute(vars)
# write output to file
dest_dir = os.path.dirname(args.m)
if not os.path.exists(dest_dir):
try:
os.makedirs(dest_dir);
except OSError, e:
if e.errno != 17:
raise
with open(args.m,"w") as fp:
fp.write(banner)
fp.write(output.getvalue())
# write minimized output to file
dest_dir = os.path.dirname(args.o)
if not os.path.exists(dest_dir):
try:
os.makedirs(dest_dir);
except OSError, e:
if e.errno != 17:
raise
if isJavaScript:
with open(args.o,"w") as fp:
fp.write(banner)
fp.write(rjsmin.jsmin(output.getvalue()))
else:
with open(args.o,"w") as fp:
fp.write(banner)
fp.write(rcssmin.cssmin(output.getvalue()))