Example #1
0
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)
Example #2
0
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)
Example #3
0
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)
Example #4
0
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)
Example #5
0
    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
Example #6
0
            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,
Example #7
0
# 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."
Example #9
0
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.")
Example #10
0
            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
Example #11
0
        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")
Example #12
0
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")
Example #13
0
File: build.py Project: z0630/ol2
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.")
Example #14
0
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")
Example #15
0
        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
Example #16
0
    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
Example #17
0
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")
Example #18
0
    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
Example #19
0
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")