diff --git a/lib/wrench.js b/lib/wrench.js index 4777b0f..340483b 100644 --- a/lib/wrench.js +++ b/lib/wrench.js @@ -213,6 +213,30 @@ exports.copyDirRecursive = function copyDirRecursive(srcDir, newDir, clbk) { }); }; +var mkDirSyncRecursive = function(path, mode) { + var self = this; + + try { + fs.mkdirSync(path, mode); + } catch(err) { + if(err.code == "ENOENT") { + var slashIdx = path.lastIndexOf("/"); + if(slashIdx > 0) { + var parentPath = path.substring(0, slashIdx); + mkDirSyncRecursive(parentPath, mode); + mkDirSyncRecursive(path, mode); + } else { + throw err; + } + } else if(err.code == "EEXIST") { + return; + } else { + throw err; + } + } +}; +exports.mkDirSyncRecursive = mkDirSyncRecursive; + exports.LineReader = function(filename, bufferSize) { this.bufferSize = bufferSize || 8192; this.buffer = "";