diff options
author | isaacs <i@izs.me> | 2012-03-29 05:23:08 +0400 |
---|---|---|
committer | isaacs <i@izs.me> | 2012-03-29 05:23:08 +0400 |
commit | 14729f8fbc0e80157a9cdbd5ab75f5b29d16173e (patch) | |
tree | ab675d2b13d3e1f08fb3c6f8d9694cc5307d6488 /node_modules/mkdirp | |
parent | 37c8f97f58ba0283819ab8e4409ce3d12900974b (diff) |
update mkdirp
Diffstat (limited to 'node_modules/mkdirp')
-rw-r--r-- | node_modules/mkdirp/index.js | 46 | ||||
-rw-r--r-- | node_modules/mkdirp/package.json | 63 |
2 files changed, 69 insertions, 40 deletions
diff --git a/node_modules/mkdirp/index.js b/node_modules/mkdirp/index.js index 25f43adfa..871488f63 100644 --- a/node_modules/mkdirp/index.js +++ b/node_modules/mkdirp/index.js @@ -8,18 +8,24 @@ function mkdirP (p, mode, f) { f = mode; mode = 0777 & (~process.umask()); } - + + // secret passalong argument. + var made = arguments[3] || null; + var cb = f || function () {}; if (typeof mode === 'string') mode = parseInt(mode, 8); p = path.resolve(p); fs.mkdir(p, mode, function (er) { - if (!er) return cb(); + if (!er) { + made = made || p; + return cb(null, made); + } switch (er.code) { case 'ENOENT': - mkdirP(path.dirname(p), mode, function (er) { - if (er) cb(er); - else mkdirP(p, mode, cb); + mkdirP(path.dirname(p), mode, function (er, made) { + if (er) cb(er, made); + else mkdirP(p, mode, cb, made); }); break; @@ -27,13 +33,13 @@ function mkdirP (p, mode, f) { fs.stat(p, function (er2, stat) { // if the stat fails, then that's super weird. // let the original EEXIST be the failure reason. - if (er2 || !stat.isDirectory()) cb(er) - else cb(); + if (er2 || !stat.isDirectory()) cb(er, made) + else cb(null, made); }); break; default: - cb(er); + cb(er, made); break; } }); @@ -43,37 +49,39 @@ mkdirP.sync = function sync (p, mode) { if (mode === undefined) { mode = 0777 & (~process.umask()); } - + + // secret passalong argument + var made = arguments[2] || null; + if (typeof mode === 'string') mode = parseInt(mode, 8); p = path.resolve(p); - + try { - fs.mkdirSync(p, mode) + fs.mkdirSync(p, mode); + made = made || p; } catch (err0) { switch (err0.code) { case 'ENOENT' : - var err1 = sync(path.dirname(p), mode) - if (err1) throw err1; - else return sync(p, mode); + made = sync(path.dirname(p), mode, made); + sync(p, mode, made); break; - + case 'EEXIST' : var stat; try { stat = fs.statSync(p); } catch (err1) { - throw err0 + throw err0; } if (!stat.isDirectory()) throw err0; - else return null; break; default : throw err0 break; } } - - return null; + + return made; }; diff --git a/node_modules/mkdirp/package.json b/node_modules/mkdirp/package.json index 1bf9ac782..2a40503c5 100644 --- a/node_modules/mkdirp/package.json +++ b/node_modules/mkdirp/package.json @@ -1,23 +1,44 @@ { - "name" : "mkdirp", - "description" : "Recursively mkdir, like `mkdir -p`", - "version" : "0.3.0", - "author" : "James Halliday <mail@substack.net> (http://substack.net)", - "main" : "./index", - "keywords" : [ - "mkdir", - "directory" - ], - "repository" : { - "type" : "git", - "url" : "http://github.com/substack/node-mkdirp.git" - }, - "scripts" : { - "test" : "tap test/*.js" - }, - "devDependencies" : { - "tap" : "0.0.x" - }, - "license" : "MIT/X11", - "engines": { "node": "*" } + "name": "mkdirp", + "description": "Recursively mkdir, like `mkdir -p`", + "version": "0.3.0", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "main": "./index", + "keywords": [ + "mkdir", + "directory" + ], + "repository": { + "type": "git", + "url": "git://github.com/substack/node-mkdirp.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "devDependencies": { + "tap": "0.2" + }, + "license": "MIT/X11", + "engines": { + "node": "*" + }, + "_npmUser": { + "name": "isaacs", + "email": "i@izs.me" + }, + "_id": "mkdirp@0.3.0", + "dependencies": {}, + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.13", + "_nodeVersion": "v0.7.7-pre", + "_defaultsLoaded": true, + "dist": { + "shasum": "a3cc6816e78b84f570caf9d95cb7368dc5d0bab8" + }, + "_from": "../mkdirp" } |