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

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

Used jslint to clean up the javascript code some more and used the yui compressor to create a compressed version of the cowsclient javascript. I've included the scripts used along with the jslint code.

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