Changeset 7773

Show
Ignore:
Timestamp:
03/23/07 16:45:57 (20 months ago)
Author:
jburke
Message:

Refs #2607. Got basic copying working for non-dojo dirs (like dijit). Not very interesting yet.

Location:
util/trunk/buildscripts
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • util/trunk/buildscripts/build.js

    r7768 r7773  
    1212kwArgs.releaseDir = "release/" + kwArgs["releaseName"] || "dojo"; 
    1313kwArgs.version = kwArgs["version"] || "0.0.0.dev"; 
    14 kwArgs.actions = (kwArgs["action"] || "release").split(","); 
     14kwArgs.action = (kwArgs["action"] || "release").split(","); 
    1515kwArgs.loader = kwArgs["loader"] || "default"; 
    1616if(!kwArgs["profileFile"] && kwArgs["profile"]){ 
     
    2020        logger.level = logger[kwArgs["log"]]; 
    2121} 
    22 if(typeof kwArgs["copyTests"] == "undefined") 
     22if(typeof kwArgs["copyTests"] == "undefined"){ 
    2323        kwArgs.copyTests = true;         
    2424} 
    2525 
     26//Execute the requested build actions 
     27var action = kwArgs.action; 
     28for(var i = 0; i < action.length; i ++){ 
     29        this[action[i]](); 
     30} 
     31 
     32 
    2633//********* Start clean ************ 
    2734function clean(){ 
    28         fileUtil.deleteFile(releaseDir); 
     35        fileUtil.deleteFile(kwArgs.releaseDir); 
    2936} 
    3037//********* End clean ********* 
     
    3946        //Get the list of module directories we need to process. 
    4047        //They will be in the dependencies.prefixes array. 
    41         var dependencies = buildUtil.evalProfile(kwArgs.profileFile); 
     48        var profileProperties = buildUtil.evalProfile(kwArgs.profileFile); 
     49        var dependencies = profileProperties.dependencies; 
    4250        var prefixes = dependencies.prefixes; 
    4351        var dojoPrefixPath = null; 
     52         
     53        //Copy each prefix dir to the releases and 
     54        //operate on that copy. 
    4455        for(var i = 0; i < prefixes.length; i++){ 
    4556                var prefixName = prefixes[i][0]; 
     
    5061                        dojoPrefixPath = prefixPath; 
    5162                }else{ 
    52                         _releasePrefixPath(prefixName, prefixPath, kwArgs); 
     63                        _prefixPathRelease(prefixName, prefixPath, kwArgs); 
    5364                } 
    5465        } 
    55          
     66 
    5667        //Now process Dojo core. Special things for that one. 
    5768        if(dojoPrefixPath){ 
     
    7384 
    7485//********* Start _releasePrefixPath ********* 
    75 function _releasePrefixPath(prefixName, prefixPath, kwArgs){ 
    76         //Copy prefixPath to release dir. 
    77         //Skip tests if requested. 
    78         //xxx 
     86function _prefixPathRelease(prefixName, prefixPath, kwArgs){ 
     87        var releasePath = kwArgs.releaseDir + "/"  + prefixName; 
     88        var copyRegExp = /./; 
     89         
     90        //Use the copyRegExp to filter out tests if requested. 
     91        if(kwArgs.copyTests){ 
     92                copyRegExp = new RegExp(prefixName.replace(/\\/g, "/") + "/(?!tests/)"); 
     93        } 
     94 
     95        fileUtil.copyDir(prefixPath, releasePath, copyRegExp); 
    7996         
    8097        //makeDojoJs.js 
    8198        //xxx 
    8299         
     100        //flatten  
    83101        //Run xdgen if an xdomain build. 
    84102        //xxx 
  • util/trunk/buildscripts/jslib/buildUtil.js

    r7768 r7773  
    296296        //Find prefixes that are used. 
    297297        var usedPrefixes = ["dojo"]; 
    298         usePrefixes._entries { dojo: true }; 
     298        usedPrefixes._entries = { dojo: true }; 
    299299         
    300300        //Check normal dependencies. 
     
    303303        //Check layer dependencies 
    304304        var layerDeps = dependencies.layers; 
    305         for(var i = 0; i < layerDeps.length; i++){ 
    306                 buildUtil.addPrefixesFromDependencies(usedPrefixes, layerDeps[i].dependencies); 
     305         
     306        if(layerDeps){ 
     307                for(var i = 0; i < layerDeps.length; i++){ 
     308                        buildUtil.addPrefixesFromDependencies(usedPrefixes, layerDeps[i].dependencies); 
     309                } 
    307310        } 
    308311 
     
    311314        //location, as a sibling to dojo (and util). 
    312315        for(var i = 0; i < usedPrefixes.length; i++){ 
    313                 if(!buildUtil.isValueInArray(usedPrefixes[i], dependencies.prefixes){ 
     316                if(!buildUtil.isValueInArray(usedPrefixes[i], dependencies.prefixes)){ 
    314317                        dependencies.prefixes.push([usedPrefixes[i], "../../" + usedPrefixes[i]]); 
    315318                } 
  • util/trunk/buildscripts/jslib/fileUtil.js

    r7764 r7773  
    99} 
    1010 
    11 //Recurses startDir and finds matches to the files that match regExpFilter. 
    12 //Ignores files/directories that start with a period (.). 
    13 fileUtil.getFilteredFileList = function(startDir, regExpFilter, makeUnixPaths, startDirIsJavaObject){ 
     11fileUtil.getFilteredFileList = function(/*String*/startDir, /*RegExp*/regExpFilter, /*boolean?*/makeUnixPaths, /*boolean?*/startDirIsJavaObject){ 
     12        //summary: Recurses startDir and finds matches to the files that match regExpFilter. 
     13        //Ignores files/directories that start with a period (.). 
    1414        var files = []; 
    1515 
     
    4242        } 
    4343 
    44         return files; 
     44        return files; //Array 
     45} 
     46 
     47 
     48fileUtil.copyDir = function(/*String*/srcDir, /*String*/destDir, /*RegExp*/regExpFilter){ 
     49        //summary: copies files from srcDir to destDir using the regExpFilter to determine if the 
     50        //file should be copied. 
     51        var fileNames = fileUtil.getFilteredFileList(srcDir, regExpFilter, true); 
     52         
     53        for(var i = 0; i < fileNames.length; i++){ 
     54                var srcFileName = fileNames[i]; 
     55                var destFileName = srcFileName.replace(srcDir, destDir); 
     56 
     57                logger.trace("Src filename: " + srcFileName); 
     58                logger.trace("Dest filename: " + destFileName); 
     59 
     60                //Make sure destination dir exists. 
     61                var destFile = new java.io.File(destFileName); 
     62                var parentDir = destFile.getParentFile(); 
     63                if(!parentDir.exists()){ 
     64                        if(!parentDir.mkdirs()){ 
     65                                throw "Could not create directory: " + parentDir.getAbsolutePath(); 
     66                        } 
     67                } 
     68 
     69                //Java's version of copy file. 
     70                var srcChannel = new java.io.FileInputStream(srcFileName).getChannel(); 
     71                var destChannel = new java.io.FileOutputStream(destFileName).getChannel(); 
     72                destChannel.transferFrom(srcChannel, 0, srcChannel.size()); 
     73                srcChannel.close(); 
     74                destChannel.close(); 
     75        } 
    4576} 
    4677 
    4778fileUtil.readFile = function(/*String*/path, /*String?*/encoding){ 
     79        //summary: reads a file and returns a string 
    4880        encoding = encoding || "utf-8"; 
    4981        var file = new java.io.File(path); 
     
    5789                        stringBuffer.append(lineSeparator); 
    5890                } 
    59                 return stringBuffer.toString(); 
     91                return stringBuffer.toString(); //Java String 
    6092        } finally { 
    6193                input.close(); 
     
    6496 
    6597fileUtil.saveUtf8File = function(/*String*/fileName, /*String*/fileContents){ 
     98        //summary: saves a file using UTF-8 encoding. 
    6699        fileUtil.saveFile(fileName, fileContents, "utf-8"); 
    67100} 
    68101 
    69102fileUtil.saveFile = function(/*String*/fileName, /*String*/fileContents, /*String?*/encoding){ 
     103        //summary: saves a file. 
    70104        var outFile = new java.io.File(fileName); 
    71105        var outWriter; 
     
    85119 
    86120fileUtil.deleteFile = function(fileName){ 
     121        //summary: deletes a file if it exists. 
    87122        var file = new java.io.File(fileName); 
    88123        if(file.exists()){ 
  • util/trunk/buildscripts/jslib/logger.js

    r7764 r7773  
    3232 
    3333        _print: function(message){ 
    34                 print((this.logPrefix ? this.logPrefix + " ") : "") + message); 
     34                print((this.logPrefix ? (this.logPrefix + " ") : "") + message); 
    3535        } 
    3636}