source: cowsclient/trunk/cowsclient/scripts/build_compressed_javascript.py @ 6119

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/cowsclient/trunk/cowsclient/scripts/build_compressed_javascript.py@6119
Revision 6119, 2.3 KB checked in by pnorton, 10 years ago (diff)

Made several changes to try and reduce the amount of data to download on the wmsviz page. Also created a single place where the js files for the wmsviz page are listed.

Line 
1'''
2Created on 20 Nov 2009
3
4@author: pnorton
5'''
6import pkg_resources
7import os
8import gzip
9
10
11COMPRESSED_JS_NAME = 'compressed_client.js'
12YUI_COMPRESSOR_PATH = './yuicompressor-2.4.2.jar'
13
14def buildCompressedFile(files):
15
16    outputsDir = os.path.join(pkg_resources.resource_filename('cowsclient',''), 'public/js')
17   
18    tempOutputFile = os.path.join(outputsDir, COMPRESSED_JS_NAME + '.tmp')
19    outputFile = os.path.join(outputsDir, COMPRESSED_JS_NAME)
20    outputFH = open(tempOutputFile, 'w')
21   
22    for f in files:
23        fh = open(os.path.join(outputsDir,f))
24        data = fh.read() + '\n'
25        fh.close()
26
27        outputFH.write(data)
28
29    outputFH.close()
30   
31    print "wrote outputFile", tempOutputFile
32
33    options = '--type js -v -o %s' % (outputFile,)
34   
35    cmd = 'java -jar "%s" %s "%s"' % (YUI_COMPRESSOR_PATH, options, tempOutputFile)
36   
37    print "running ", cmd
38    ret = os.system(cmd)
39   
40    print "returned", ret
41   
42    if ret == 0:
43        os.remove(tempOutputFile)
44       
45    print "wrote", outputFile
46   
47    return ret
48
49if __name__ == '__main__':
50   
51    javascript_files = ['wmsc.js',
52                        'utils.js',
53                        'endpoint.js',
54                        'furtherInfoLink.js',
55                        'displayOptionsRetriever.js',
56                        'mapControl.js',
57                        'layerControl.js',
58                        'capabilities.js',
59                        'wcs.js',
60                        'layerFigureDownload.js',
61                        'layerInformation.js',
62                        'layerList.js',
63                        'layerDisplayOptions.js',
64                        'layerDownload.js',
65                        'layoutManager.js',
66                        'splitAxisConfig.js',
67                        'splitAxisSelect.js',
68                        'endpointSelection.js',
69                        'ajaxRetriever.js',
70                        'axisConfigRetriever.js',
71                        'layerDimensions.js',
72                        'layerParameters.js',
73                        'figureBuilder.js',
74                        'legendContainer.js',
75                        'boundsControl.js',
76                        'wmcRetriever.js',
77                        'layerDefaultSetter.js',
78                        'outlineControl.js']
79       
80    ret = buildCompressedFile(javascript_files)
81   
Note: See TracBrowser for help on using the repository browser.