def main(): web_dev_dir = "../web_dev" web_dir = "../web" web_temp_dir = "../web.tmp" proSoar_merge = "merge_proSoar.conf" proSoar_javascript = "proSoar.js" mooTools_merge = "merge_mooTools.conf" mooTools_javascript = "mooTools.js" OpenLayers_merge = "merge_OpenLayers.conf" OpenLayers_javascript = "OpenLayers.js" print "Depolying proSoar from " + web_dev_dir + " to " + web_dir if os.path.exists(web_temp_dir): shutil.rmtree(web_temp_dir) os.mkdir(web_temp_dir) os.mkdir(os.path.join(web_temp_dir, 'LC_MESSAGES')) os.mkdir(os.path.join(web_temp_dir, 'js')) os.mkdir(os.path.join(web_temp_dir, 'js', 'OpenLayers')) os.mkdir(os.path.join(web_temp_dir, 'js', 'MooTools')) # merge proSoar javascript files print "Merging proSoar javascript files" try: proSoar_merged = mergejs.run(os.path.join(web_dev_dir, 'js'), None, proSoar_merge) except mergejs.MissingImport, E: print "\nAbnormal termination." sys.exit("ERROR: %s" % E)
def minify_from_cfg(minimize, name, source_dir, cfg_name, out_filename, extra_params=None): """ Merge+minify JS files from a JS config file (DRY helper for do_js) """ info("Compressing %s" % name) # Merge + minify merged = mergejs.run(source_dir, None, cfg_name) if extra_params: try: # Assume closure minimized = minimize(merged, extra_params=extra_params) except: # No, not closure minimized = minimize(merged) else: minimized = minimize(merged) # Write minified file with openf(out_filename, "w") as outFile: outFile.write(minimized) # Replace target file move_to(out_filename, "%s/S3" % source_dir)
def minify_from_cfg(minimize, name, source_dir, cfg_name, out_filename, extra_params=None): """ Merge+minify JS files from a JS config file (DRY helper for dojs) """ info("Compressing %s" % name) # Merge + minify merged = mergejs.run(source_dir, None, cfg_name) if extra_params: try: # Assume closure minimized = minimize(merged, extra_params=extra_params) except: # No, not closure minimized = minimize(merged) else: minimized = minimize(merged) # Write minified file with open(out_filename, "w") as outFile: outFile.write(minimized) # Replace target file move_to(out_filename, "%s/S3" % source_dir)
def main(): web_dev_dir = "../web_dev" web_dir = "../web" web_temp_dir = "../web.tmp" proSoar_merge = "merge_proSoar.conf" proSoar_javascript = "proSoar.js" mooTools_merge = "merge_mooTools.conf" mooTools_javascript = "mooTools.js" OpenLayers_merge = "merge_OpenLayers.conf" OpenLayers_javascript = "OpenLayers.js" print "Depolying proSoar from " + web_dev_dir + " to " + web_dir if os.path.exists(web_temp_dir): shutil.rmtree(web_temp_dir) os.mkdir(web_temp_dir) os.mkdir(os.path.join(web_temp_dir, 'LC_MESSAGES')) os.mkdir(os.path.join(web_temp_dir, 'js')) os.mkdir(os.path.join(web_temp_dir, 'js', 'OpenLayers')) os.mkdir(os.path.join(web_temp_dir, 'js', 'MooTools')) # merge proSoar javascript files print "Merging proSoar javascript files" try: proSoar_merged = mergejs.run( os.path.join(web_dev_dir, 'js'), None, proSoar_merge, ) except mergejs.MissingImport, E: print "\nAbnormal termination." sys.exit("ERROR: %s" % E)
if use_compressor == "closure": if not warnings: closure.extra_params = "--warning_level QUIET" minimize = closure.minimize elif use_compressor == "closure_ws": minimize = closure_ws.minimize elif use_compressor == "jsmin": minimize = jsmin.jsmin sourceDirectory = ".." configFilename = "sahana.js.cfg" outputFilename = "S3.min.js" # Merge JS files print "Merging Core libraries." merged = mergejs.run(sourceDirectory, None, configFilename) # Compress JS files print "Compressing - JS" minimized = minimize(merged) # Add license print "Adding license file." minimized = open("license.txt").read() + minimized # Print to output files print "Writing to %s." % outputFilename open(outputFilename, "w").write(minimized) # Remove old JS files print "Deleting %s." % outputFilename
None, proSoar_merge, ) except mergejs.MissingImport, E: print "\nAbnormal termination." sys.exit("ERROR: %s" % E) path = os.path.join(web_temp_dir, 'js', proSoar_javascript) print "Writing merged proSoar javascript to " + path file(path, 'w').write(minify(proSoar_merged)) # merge mooTools javascript files print "Merging mooTools javascript files" try: mooTools_merged = mergejs.run(os.path.join(web_dev_dir, 'js'), None, mooTools_merge) except mergejs.MissingImport, E: print "\nAbnormal termination." sys.exit("ERROR: %s" % E) path = os.path.join(web_temp_dir, 'js', mooTools_javascript) print "Writing merged mooTools javascript to " + path file(path, 'w').write(minify(mooTools_merged)) # merge OpenLayers javascript files print "Merging OpenLayers javascript files" try: OpenLayers_merged = mergejs.run( os.path.join(web_dev_dir, 'js', 'OpenLayers', 'lib'), None, OpenLayers_merge,
# merge proSoar javascript files print "Merging proSoar javascript files" try: proSoar_merged = mergejs.run(os.path.join(web_dev_dir, 'js'), None, proSoar_merge) except mergejs.MissingImport, E: print "\nAbnormal termination." sys.exit("ERROR: %s" % E) print "Writing merged proSoar javascript to " + os.path.join(web_temp_dir, 'js', proSoar_javascript) file(os.path.join(web_temp_dir, 'js', proSoar_javascript), 'w').write(minify(proSoar_merged)) # merge mooTools javascript files print "Merging mooTools javascript files" try: mooTools_merged = mergejs.run(os.path.join(web_dev_dir, 'js'), None, mooTools_merge) except mergejs.MissingImport, E: print "\nAbnormal termination." sys.exit("ERROR: %s" % E) print "Writing merged mooTools javascript to " + os.path.join(web_temp_dir, 'js', mooTools_javascript) file(os.path.join(web_temp_dir, 'js', mooTools_javascript), 'w').write(minify(mooTools_merged)) # merge OpenLayers javascript files print "Merging OpenLayers javascript files" try: OpenLayers_merged = mergejs.run(os.path.join(web_dev_dir, 'js', 'OpenLayers', 'lib'), None, OpenLayers_merge) except mergejs.MissingImport, E: print "\nAbnormal termination." sys.exit("ERROR: %s" % E)
#!/usr/bin/env python import sys sys.path.append("tools") import jsmin, mergejs sourceDirectory = "../js" configFilename = "ors.cfg" outputFilename = "ORS.js" if len(sys.argv) > 1: configFilename = sys.argv[1] + ".cfg" if len(sys.argv) > 2: outputFilename = sys.argv[2] print "Merging libraries." merged = mergejs.run(sourceDirectory, None, configFilename) print "Adding license file." merged = file("license.txt").read() + merged print "Writing to %s." % outputFilename file(outputFilename, "w").write(merged) print "Done."
def build(config_file = None, output_file = None, options = None): have_compressor = [] try: import jsmin have_compressor.append("jsmin") except ImportError: print("No jsmin") try: # tools/closure_library_jscompiler.py from: # http://code.google.com/p/closure-library/source/browse/trunk/closure/bin/build/jscompiler.py import closure_library_jscompiler as closureCompiler have_compressor.append("closure") except Exception as E: print("No closure (%s)" % E) try: import closure_ws have_compressor.append("closure_ws") except ImportError: print("No closure_ws") try: import minimize have_compressor.append("minimize") except ImportError: print("No minimize") use_compressor = None if options.compressor and options.compressor in have_compressor: use_compressor = options.compressor sourceDirectory = "../lib" configFilename = "full.cfg" outputFilename = "OpenLayers.js" if config_file: configFilename = config_file extension = configFilename[-4:] if extension != ".cfg": configFilename = config_file + ".cfg" if output_file: outputFilename = output_file print("Merging libraries.") try: if use_compressor == "closure": sourceFiles = mergejs.getNames(sourceDirectory, configFilename) else: merged = mergejs.run(sourceDirectory, None, configFilename) except mergejs.MissingImport as E: print("\nAbnormal termination.") sys.exit("ERROR: %s" % E) if options.amdname: options.amdname = "'" + options.amdname + "'," else: options.amdname = "" if options.amd == 'pre': print("\nAdding AMD function.") merged = "define(%sfunction(){%sreturn OpenLayers;});" % (options.amdname, merged) print("Compressing using %s" % use_compressor) if use_compressor == "jsmin": minimized = jsmin.jsmin(merged) elif use_compressor == "minimize": minimized = minimize.minimize(merged) elif use_compressor == "closure_ws": if len(merged) > 1000000: # The maximum file size for this web service is 1000 KB. print("\nPre-compressing using jsmin") merged = jsmin.jsmin(merged) print("\nIs being compressed using Closure Compiler Service.") try: minimized = closure_ws.minimize(merged) except Exception as E: print("\nAbnormal termination.") sys.exit("ERROR: Closure Compilation using Web service failed!\n%s" % E) if len(minimized) <= 2: print("\nAbnormal termination due to compilation errors.") sys.exit("ERROR: Closure Compilation using Web service failed!") else: print("Closure Compilation using Web service has completed successfully.") elif use_compressor == "closure": jscompilerJar = "../tools/closure-compiler.jar" if not os.path.isfile(jscompilerJar): print("\nNo closure-compiler.jar; read README.txt!") sys.exit("ERROR: Closure Compiler \"%s\" does not exist! Read README.txt" % jscompilerJar) minimized = closureCompiler.Compile( jscompilerJar, sourceFiles, [ "--externs", "closure-compiler/Externs.js", "--jscomp_warning", "checkVars", # To enable "undefinedVars" "--jscomp_error", "checkRegExp", # Also necessary to enable "undefinedVars" "--jscomp_error", "undefinedVars" ] ) if minimized is None: print("\nAbnormal termination due to compilation errors.") sys.exit("ERROR: Closure Compilation failed! See compilation errors.") print("Closure Compilation has completed successfully.") else: # fallback minimized = merged if options.amd == 'post': print("\nAdding AMD function.") minimized = "define(%sfunction(){%sreturn OpenLayers;});" % (options.amdname, minimized) if options.status: print("\nAdding status file.") minimized = "// status: " + file(options.status).read() + minimized print("\nAdding license file.") minimized = open("license.txt").read() + minimized print("Writing to %s." % outputFilename) open(outputFilename, "w").write(minimized) print("Done.")
print "No closure_ws" if use_compressor == "closure": minimize = closure.minimize elif use_compressor == "closure_ws": minimize = closure_ws.minimize elif use_compressor == "jsmin": minimize = jsmin.jsmin sourceDirectory = ".." configFilename = "sahana.js.cfg" outputFilename = "S3.min.js" # Merge JS files print "Merging Core libraries." merged = mergejs.run(sourceDirectory, None, configFilename) # Compress JS files print "Compressing - JS" minimized = minimize(merged) # Add license print "Adding license file." minimized = file("license.txt").read() + minimized # Print to output files print "Writing to %s." % outputFilename file(outputFilename, "w").write(minimized) # Remove old JS files print "Deleting %s." % outputFilename
Replace the file at "path" location with the (newly built) file of the same name in the working directory """ name = os.path.basename(filename) target = os.path.join(path, name) try: # Remove existing file os.remove(target) except: # Doesn't exist pass shutil.move(filename, path) sourceDirectoryOpenLayers = "../gis/openlayers/lib" configFilenameOpenLayers = "sahana.js.ol.cfg" outputFilenameOpenLayers = "OpenLayers.js" mergedOpenLayers = mergejs.run(sourceDirectoryOpenLayers, None, configFilenameOpenLayers) # Suppress strict-mode errors minimizedOpenLayers = closure.minimize( mergedOpenLayers, extra_params="--strict_mode_input=false") with openf(outputFilenameOpenLayers, "w") as outFile: #outFile.write(mergedOpenLayers) outFile.write(minimizedOpenLayers) #os.system("terser OpenLayers.js -c -o OpenLayers.min.js") move_to(outputFilenameOpenLayers, "../gis")
import closure closure.extra_params = "--warning_level QUIET" minimize = closure.minimize def move_to(filename, path): """ Replace the file at "path" location with the (newly built) file of the same name in the working directory """ name = os.path.basename(filename) target = os.path.join(path, name) info("Replacing %s.\n" % target) try: # Remove existing file os.remove(target) except: # Doesn't exist pass shutil.move(filename, path) merged = mergejs.run("..", None, "foundation.cfg") minimized = minimize(merged) # Write minified file with openf("foundation.min.js", "w") as outFile: outFile.write(minimized) # Replace target file move_to("foundation.min.js", "../foundation")
def build(config_file=None, output_file=None, options=None): have_compressor = [] try: import jsmin have_compressor.append("jsmin") except ImportError as E: print("No jsmin (%s)" % E) try: # tools/closure_library_jscompiler.py from: # http://code.google.com/p/closure-library/source/browse/trunk/closure/bin/build/jscompiler.py import closure_library_jscompiler as closureCompiler have_compressor.append("closure") except Exception as E: print("No closure (%s)" % E) try: import closure_ws have_compressor.append("closure_ws") except ImportError as E: print("No closure_ws (%s)" % E) try: import minimize have_compressor.append("minimize") except ImportError as E: print("No minimize (%s)" % E) try: import uglify_js uglify_js.check_available() have_compressor.append("uglify-js") except Exception as E: print("No uglify-js (%s)" % E) use_compressor = None if options.compressor and options.compressor in have_compressor: use_compressor = options.compressor sourceDirectory = "../lib" configFilename = "full.cfg" outputFilename = "OpenLayers.js" if config_file: configFilename = config_file extension = configFilename[-4:] if extension != ".cfg": configFilename = config_file + ".cfg" if output_file: outputFilename = output_file print("Merging libraries.") try: if use_compressor == "closure" or use_compressor == 'uglify-js': sourceFiles = mergejs.getNames(sourceDirectory, configFilename) else: merged = mergejs.run(sourceDirectory, None, configFilename) except mergejs.MissingImport as E: print("\nAbnormal termination.") sys.exit("ERROR: %s" % E) if options.amdname: options.amdname = "'" + options.amdname + "'," else: options.amdname = "" if options.amd == 'pre': print("\nAdding AMD function.") merged = "define(%sfunction(){%sreturn OpenLayers;});" % ( options.amdname, merged) print("Compressing using %s" % use_compressor) if use_compressor == "jsmin": minimized = jsmin.jsmin(merged) elif use_compressor == "minimize": minimized = minimize.minimize(merged) elif use_compressor == "closure_ws": if len( merged ) > 1000000: # The maximum file size for this web service is 1000 KB. print("\nPre-compressing using jsmin") merged = jsmin.jsmin(merged) print("\nIs being compressed using Closure Compiler Service.") try: minimized = closure_ws.minimize(merged).decode() except Exception as E: print("\nAbnormal termination.") sys.exit( "ERROR: Closure Compilation using Web service failed!\n%s" % E) if len(minimized) <= 2: print("\nAbnormal termination due to compilation errors.") sys.exit("ERROR: Closure Compilation using Web service failed!") else: print( "Closure Compilation using Web service has completed successfully." ) elif use_compressor == "closure": jscompilerJar = "../tools/closure-compiler.jar" if not os.path.isfile(jscompilerJar): print("\nNo closure-compiler.jar; read README.txt!") sys.exit( "ERROR: Closure Compiler \"%s\" does not exist! Read README.txt" % jscompilerJar) minimized = closureCompiler.Compile( jscompilerJar, sourceFiles, [ "--externs", "closure-compiler/Externs.js", "--jscomp_warning", "checkVars", # To enable "undefinedVars" "--jscomp_error", "checkRegExp", # Also necessary to enable "undefinedVars" "--jscomp_error", "undefinedVars" ]).decode() if minimized is None: print("\nAbnormal termination due to compilation errors.") sys.exit( "ERROR: Closure Compilation failed! See compilation errors.") print("Closure Compilation has completed successfully.") elif use_compressor == "uglify-js": minimized = uglify_js.compile(sourceFiles) if (sys.version_info > (3, 0)): minimized = minimized.decode() if minimized is None: print("\nAbnormal termination due to compilation errors.") sys.exit( "ERROR: Uglify JS compilation failed! See compilation errors.") print("Uglify JS compilation has completed successfully.") else: # fallback minimized = merged if options.amd == 'post': print("\nAdding AMD function.") minimized = "define(%sfunction(){%sreturn OpenLayers;});" % ( options.amdname, minimized) if options.status: print("\nAdding status file.") minimized = "// status: " + open(options.status).read() + minimized print("\nAdding license file.") minimized = open("license.txt").read() + minimized print("Writing to %s." % outputFilename) open(outputFilename, "w").write(minimized) print("Done.")
def do_js(minimize, compressor, do_gis=False, warnings=True): """ Minifies the JavaScript """ # ------------------------------------------------------------------------- # Build S3.min.js # sourceDirectory = ".." configFilename = "sahana.js.cfg" outputFilename = "S3.min.js" info("Merging Core libraries.") merged = mergejs.run(sourceDirectory, None, configFilename) info("Compressing - JS") minimized = minimize(merged) info("Adding license file.") minimized = open("license.txt").read() + minimized info("Writing to %s." % outputFilename) with openf(outputFilename, "w") as outFile: outFile.write(minimized) # Remove old JS files info("Deleting %s." % outputFilename) try: os.remove("../S3/%s" % outputFilename) except: pass info("Moving new JS files") shutil.move(outputFilename, "../S3") # ------------------------------------------------------------------------- # Build bootstrap # # Bootstrap # info("Compressing Bootstrap") # sourceDirectoryBootstrap = ".." # configFilenameBootstrap = "sahana.js.bootstrap.cfg" # outputFilenameBootstrap = "bootstrap.min.js" # mergedBootstrap = mergejs.run(sourceDirectoryBootstrap, # None, # configFilenameBootstrap) # minimizedBootstrap = minimize(mergedBootstrap) # open(outputFilenameBootstrap, "w").write(minimizedBootstrap) # try: # os.remove("../%s" % outputFilenameBootstrap) # except: # pass # shutil.move(outputFilenameBootstrap, "..") # ------------------------------------------------------------------------- # Build multi-component S3 scripts (=sahana.js.*.cfg files) # - configured as: # (title, config-file, output-file, closure-extra-params) # s3_script_sets = ( ("calendar", "sahana.js.calendar.cfg", "s3.ui.calendar.min.js", None), ("dataLists", "sahana.js.dataLists.cfg", "s3.dataLists.min.js", None), ("dataTables", "sahana.js.datatable.cfg", "s3.ui.datatable.min.js", None), ("dataTables (multi)", "sahana.js.dataTables_multi.cfg", "s3.dataTables.multi.min.js", None), ("groupedItems", "sahana.js.groupeditems.cfg", "s3.groupeditems.min.js", None), ("ImageCrop", "sahana.js.imageCrop.cfg", "s3.imagecrop.widget.min.js", None), ("JSTree", "sahana.js.jstree.cfg", "s3.jstree.min.js", None), ("Chat", "sahana.js.chat.cfg", "s3.chat.min.js", "--strict_mode_input=false"), ("Timeline", "sahana.js.timeline.cfg", "s3.timeline.min.js", None), ) for name, cfg_name, out_filename, extra_params in s3_script_sets: minify_from_cfg( minimize, name, "..", # source_dir cfg_name, out_filename, extra_params=extra_params, ) # ------------------------------------------------------------------------- # Build single-component S3 scripts # for filename in ( "cap", "dc_answer", "dc_question", "dc_results", "dvr", "gis", "gis.feature_crud", "gis.fullscreen", "gis.latlon", "gis.loader", "gis.pois", "msg", "popup", "register_validation", "shelter_inspection", "sync", #"timeline", "ui.addperson", "ui.anonymize", "ui.cascadeselect", "ui.charts", "ui.consent", "ui.contacts", "ui.dashboard", "ui.embeddedcomponent", "ui.gis", "ui.locationselector", "ui.organizer", "ui.permissions", "ui.pivottable", "ui.roles", "ui.sitecheckin", "ui.timeplot", "ui.weeklyhours", ): info("Compressing s3.%s.js" % filename) inputFilename = os.path.join("..", "S3", "s3.%s.js" % filename) outputFilename = "s3.%s.min.js" % filename with openf(inputFilename, "r") as inFile: with openf(outputFilename, "w") as outFile: outFile.write(minimize(inFile.read())) move_to(outputFilename, "../S3") # ------------------------------------------------------------------------- # Optional JS builds # - enable at the top when desired # if JS_FULL: # To do just 1 file: # cd static/scripts # java -jar tools/compiler.jar --js jquery.fileupload.js --js_output_file jquery.fileupload.min.js for filename in ( "jquery.fileupload", # Used by UCCE "jquery.fileupload-process", # Used by UCCE "jquery.fileupload-image", # Used by UCCE "jquery.iframe-transport", # Used by jquery.fileupload "spectrum", "tag-it", ): info("Compressing %s.js" % filename) in_f = os.path.join("..", filename + ".js") out_f = os.path.join("..", filename + ".min.js") with openf(in_f, "r") as inp: with openf(out_f, "w") as out: out.write(minimize(inp.read())) info("Compressing Foundation") # Merge + minify merged = mergejs.run("..", None, "foundation.cfg") minimized = minimize(merged) # Write minified file with openf("foundation.min.js", "w") as outFile: outFile.write(minimized) # Replace target file move_to("foundation.min.js", "../foundation") # ------------------------------------------------------------------------- # GIS # - enable with command line option DOGIS # if do_gis: sourceDirectoryOpenLayers = "../gis/openlayers/lib" sourceDirectoryMGRS = "../gis" sourceDirectoryGeoExt = "../gis/GeoExt/lib" sourceDirectoryGxp = "../gis/gxp" configFilenameOpenLayers = "sahana.js.ol.cfg" configFilenameMGRS = "sahana.js.mgrs.cfg" configFilenameGeoExt = "sahana.js.geoext.cfg" configFilenameGxpMin = "sahana.js.gxp.cfg" configFilenameGxp2 = "sahana.js.gxp2.cfg" configFilenameGxpFull = "sahana.js.gxpfull.cfg" outputFilenameOpenLayers = "OpenLayers.js" outputFilenameMGRS = "MGRS.min.js" outputFilenameGeoExt = "GeoExt.js" outputFilenameGxp = "gxp.js" outputFilenameGxp2 = "gxp_upload.js" # Merge GIS JS Files info("Merging OpenLayers libraries.") mergedOpenLayers = mergejs.run(sourceDirectoryOpenLayers, None, configFilenameOpenLayers) info("Merging MGRS libraries.") mergedMGRS = mergejs.run(sourceDirectoryMGRS, None, configFilenameMGRS) info("Merging GeoExt libraries.") mergedGeoExt = mergejs.run(sourceDirectoryGeoExt, None, configFilenameGeoExt) info("Merging gxp libraries.") mergedGxpMin = mergejs.run(sourceDirectoryGxp, None, configFilenameGxpMin) mergedGxp2 = mergejs.run(sourceDirectoryGxp, None, configFilenameGxp2) mergedGxpFull = mergejs.run(sourceDirectoryGxp, None, configFilenameGxpFull) # Compress JS files if compressor == "closure": # Suppress strict-mode errors minimize_ = lambda stream: minimize( stream, extra_params="--strict_mode_input=false", ) else: minimize_ = minimize info("Compressing - OpenLayers JS") if compressor == "closure_ws": # Limited to files < 1Mb! minimizedOpenLayers = jsmin.jsmin(mergedOpenLayers) #minimizedOpenLayers = jsmin.jsmin("%s\n%s" % (mergedOpenLayers, # mergedOpenLayersExten)) else: minimizedOpenLayers = minimize_(mergedOpenLayers) #minimizedOpenLayers = minimize_("%s\n%s" % (mergedOpenLayers, # mergedOpenLayersExten)) # OpenLayers extensions for filename in ("OWM.OpenLayers", ): inputFilename = os.path.join("..", "gis", "%s.js" % filename) outputFilename = "%s.min.js" % filename with openf(inputFilename, "r") as inFile: with openf(outputFilename, "w") as outFile: outFile.write(minimize_(inFile.read())) move_to(outputFilename, "../gis") info("Compressing - MGRS JS") minimizedMGRS = minimize_(mergedMGRS) info("Compressing - GeoExt JS") minimizedGeoExt = minimize_("%s\n%s" % ( mergedGeoExt, #mergedGeoExtux, mergedGxpMin)) # GeoNamesSearchCombo inputFilename = os.path.join("..", "gis", "GeoExt", "ux", "GeoNamesSearchCombo.js") outputFilename = "GeoNamesSearchCombo.min.js" with openf(inputFilename, "r") as inFile: with openf(outputFilename, "w") as outFile: outFile.write(minimize_(inFile.read())) move_to(outputFilename, "../gis/GeoExt/ux") info("Compressing - gxp JS") minimizedGxp = minimize_(mergedGxpFull) minimizedGxp2 = minimize_(mergedGxp2) for filename in ("WMSGetFeatureInfo", ): inputFilename = os.path.join("..", "gis", "gxp", "plugins", "%s.js" % filename) outputFilename = "%s.min.js" % filename with openf(inputFilename, "r") as inFile: with openf(outputFilename, "w") as outFile: outFile.write(minimize_(inFile.read())) move_to(outputFilename, "../gis/gxp/plugins") for filename in ( #"GoogleEarthPanel", "GoogleStreetViewPanel", ): inputFilename = os.path.join("..", "gis", "gxp", "widgets", "%s.js" % filename) outputFilename = "%s.min.js" % filename with openf(inputFilename, "r") as inFile: with openf(outputFilename, "w") as outFile: outFile.write(minimize_(inFile.read())) move_to(outputFilename, "../gis/gxp/widgets") # Add license #minimizedGIS = open("license.gis.txt").read() + minimizedGIS # Print to output files info("Writing to %s." % outputFilenameOpenLayers) with openf(outputFilenameOpenLayers, "w") as outFile: outFile.write(minimizedOpenLayers) info("Moving new OpenLayers JS files") move_to(outputFilenameOpenLayers, "../gis") info("Writing to %s." % outputFilenameMGRS) with openf(outputFilenameMGRS, "w") as outFile: outFile.write(minimizedMGRS) info("Moving new MGRS JS files") move_to(outputFilenameMGRS, "../gis") info("Writing to %s." % outputFilenameGeoExt) with openf(outputFilenameGeoExt, "w") as outFile: outFile.write(minimizedGeoExt) info("Moving new GeoExt JS files") move_to(outputFilenameGeoExt, "../gis") info("Writing to %s." % outputFilenameGxp) with openf(outputFilenameGxp, "w") as outFile: outFile.write(minimizedGxp) info("Moving new gxp JS files") move_to(outputFilenameGxp, "../gis") info("Writing to %s." % outputFilenameGxp2) with openf(outputFilenameGxp2, "w") as outFile: outFile.write(minimizedGxp2) info("Moving new gxp2 JS files") move_to(outputFilenameGxp2, "../gis")
if keep: newfiles[f] = files[f] for o in order: keep = False for k in configDictMapFish: if o.startswith(k): keep = True break if keep: neworder.append(o) # # Merge files # print "Merging libraries." merged = mergejs.run(newfiles, neworder) # # Compress files # if debug: minimized = merged else: print "Compressing." minimized = jsmin.jsmin(merged) # # Add license # print "Adding license file." minimized = file("license.txt").read() + minimized
def dojs(dogis = False): """ Minifies the js""" # Define which files we want to include # also need to amend sahana.js.cfg configDictCore = { "web2py": "..", "T2": "..", "S3": ".." } configFilename = "sahana.js.cfg" outputFilename = "S3.min.js" # Merge JS files print "Merging Core libraries." (files, order) = mergejs.getFiles(configDictCore, configFilename) merged = mergejs.run(files, order) # Compress JS files print "Compressing - JS" minimized = jsmin.jsmin(merged) # Add license print "Adding license file." minimized = file("license.txt").read() + minimized # Print to output files print "Writing to %s." % outputFilename file(outputFilename, "w").write(minimized) # Remove old JS files print "Deleting %s." % outputFilename try: os.remove("../S3/%s" % outputFilename) except: pass # Move new JS files print "Moving new JS files" shutil.move("S3.min.js", "../S3") if dogis: # also need to amend sahana.js.gis.cfg configDictGIS = { "gis": ".." } configDictGeoExt = { "GeoExt.js": "../gis/GeoExt/lib", "GeoExt": "../gis/GeoExt/lib", "ux": "../gis/GeoExt" } configDictOpenLayers = { "OpenLayers.js": "../gis/openlayers/lib", "OpenLayers": "../gis/openlayers/lib", "Rico": "../gis/openlayers/lib", "Gears": "../gis/openlayers/lib" } configDictGlobalGIS = {} configDictGlobalGIS.update(configDictOpenLayers) configDictGlobalGIS.update(configDictGIS) configFilenameGIS = "sahana.js.gis.cfg" configFilenameGeoExt = "geoext.js.gis.cfg" outputFilenameGIS = "OpenLayers.js" outputFilenameGeoExt = "GeoExt.js" # Merge GIS JS Files print "Merging GIS libraries." (files, order) = mergejs.getFiles(configDictGlobalGIS, configFilenameGIS) mergedGIS = mergejs.run(files, order) print "Merging GeoExt libraries." (files, order) = mergejs.getFiles(configDictGeoExt, configFilenameGeoExt) mergedGeoExt = mergejs.run(files, order) # Compress JS files print "Compressing - GIS JS" minimizedGIS = jsmin.jsmin(mergedGIS) print "Compressing - GeoExt JS" minimizedGeoExt = jsmin.jsmin(mergedGeoExt) # Add license minimizedGIS = file("license.gis.txt").read() + minimizedGIS # Print to output files print "Writing to %s." % outputFilenameGIS file(outputFilenameGIS, "w").write(minimizedGIS) print "Writing to %s." % outputFilenameGeoExt file(outputFilenameGeoExt, "w").write(minimizedGeoExt) # Move new JS files print "Deleting %s." % outputFilenameGIS try: os.remove("../gis/%s" % outputFilenameGIS) except: pass print "Moving new GIS JS files" shutil.move("OpenLayers.js", "../gis") print "Deleting %s." % outputFilenameGeoExt try: os.remove("../gis/%s" % outputFilenameGeoExt) except: pass print "Moving new GeoExt JS files" shutil.move("GeoExt.js", "../gis")
def dojs(dogis=False): """ Minifies the js""" # Define which files we want to include # also need to amend sahana.js.cfg configDictCore = {"web2py": "..", "T2": "..", "S3": ".."} configFilename = "sahana.js.cfg" outputFilename = "S3.min.js" # Merge JS files print "Merging Core libraries." (files, order) = mergejs.getFiles(configDictCore, configFilename) merged = mergejs.run(files, order) # Compress JS files print "Compressing - JS" minimized = jsmin.jsmin(merged) # Add license print "Adding license file." minimized = file("license.txt").read() + minimized # Print to output files print "Writing to %s." % outputFilename file(outputFilename, "w").write(minimized) # Remove old JS files print "Deleting %s." % outputFilename try: os.remove("../S3/%s" % outputFilename) except: pass # Move new JS files print "Moving new JS files" shutil.move("S3.min.js", "../S3") if dogis: # also need to amend sahana.js.gis.cfg configDictGIS = {"gis": ".."} configDictGeoExt = { "GeoExt.js": "../gis/geoext/lib", "GeoExt": "../gis/geoext/lib", "ux": "../gis/geoext" } configDictOpenLayers = { "OpenLayers.js": "../gis/openlayers/lib", "OpenLayers": "../gis/openlayers/lib", "Rico": "../gis/openlayers/lib", "Gears": "../gis/openlayers/lib" } configDictGlobalGIS = {} configDictGlobalGIS.update(configDictOpenLayers) configDictGlobalGIS.update(configDictGIS) configFilenameGIS = "sahana.js.gis.cfg" configFilenameGeoExt = "geoext.js.gis.cfg" outputFilenameGIS = "OpenLayers.js" outputFilenameGeoExt = "GeoExt.js" # Merge GIS JS Files print "Merging GIS libraries." (files, order) = mergejs.getFiles(configDictGlobalGIS, configFilenameGIS) mergedGIS = mergejs.run(files, order) print "Merging GeoExt libraries." (files, order) = mergejs.getFiles(configDictGeoExt, configFilenameGeoExt) mergedGeoExt = mergejs.run(files, order) # Compress JS files print "Compressing - GIS JS" minimizedGIS = jsmin.jsmin(mergedGIS) print "Compressing - GeoExt JS" minimizedGeoExt = jsmin.jsmin(mergedGeoExt) # Add license minimizedGIS = file("license.gis.txt").read() + minimizedGIS # Print to output files print "Writing to %s." % outputFilenameGIS file(outputFilenameGIS, "w").write(minimizedGIS) print "Writing to %s." % outputFilenameGeoExt file(outputFilenameGeoExt, "w").write(minimizedGeoExt) # Move new JS files print "Deleting %s." % outputFilenameGIS try: os.remove("../gis/%s" % outputFilenameGIS) except: pass print "Moving new GIS JS files" shutil.move("OpenLayers.js", "../gis") print "Deleting %s." % outputFilenameGeoExt try: os.remove("../gis/%s" % outputFilenameGeoExt) except: pass print "Moving new GeoExt JS files" shutil.move("GeoExt.js", "../gis")