This function will take path segments, ensure each exists, and return to you the absolute path.
Code: Select all
// Checks to make sure an array of path segments exists.
// If not, it recursively creates the folder heirarchy.
var initDirectory = function(s, verboseDebugging, pathArray, key) {
cwd = "";
forEach(pathArray, function(pathSegment, i){
cwd += pathSegment;
dir = new Dir(cwd);
if(!dir.exists){
dir.cdUp();
if(verboseDebugging === true){
s.log(-1, "initDirectory: '" + dir.absPath + "' '"+pathSegment+"' did not exist. Creating it.");
}
try {
dir.mkdir(pathSegment);
} catch (e) {
s.log(3, "Could not make '" + key + "'. " + e);
}
}
cwd += getDirectorySeperator(s);
});
lastDir = new Dir(cwd);
return lastDir.absPath;
}
Code: Select all
// From Portals...
var scriptDataFolder = s.getSpecialFolderPath('ScriptData');
var etherPath = initDirectory(s, verboseDebugging, [scriptDataFolder, etherName], "ether folder");
var channelFolder = initDirectory(s, verboseDebugging, [etherPath, channelKey], "channel folder");
var tempFolder = initDirectory(s, verboseDebugging, [channelFolder, "temp"], "temp channel folder");
var packLocation = initDirectory(s, verboseDebugging, [tempFolder, job.getUniqueNamePrefix()], "pack location");
var datasetDir = initDirectory(s, verboseDebugging, [packLocation, "datasets"], "dataset location");