Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2012-02-04 23:03:17 +0400
committerisaacs <i@izs.me>2012-02-04 23:03:17 +0400
commitcb262a31812366cea9c54abd6b7292f9dccbb70f (patch)
treeabf1d6880c6e4b6ab4951281ee679f4b37cf2296 /node_modules/mkdirp
parent81ee7cb48105909d32f133b887adaea7470c3266 (diff)
Update fstream and mkdirp
The hope that this will fix #2078
Diffstat (limited to 'node_modules/mkdirp')
-rw-r--r--node_modules/mkdirp/README.markdown37
-rw-r--r--node_modules/mkdirp/index.js45
-rw-r--r--node_modules/mkdirp/package.json2
3 files changed, 80 insertions, 4 deletions
diff --git a/node_modules/mkdirp/README.markdown b/node_modules/mkdirp/README.markdown
index 0393c4ea5..b4dd75fdc 100644
--- a/node_modules/mkdirp/README.markdown
+++ b/node_modules/mkdirp/README.markdown
@@ -3,14 +3,14 @@ mkdirp
Like `mkdir -p`, but in node.js!
-Example
+example
=======
pow.js
------
var mkdirp = require('mkdirp');
- mkdirp('/tmp/foo/bar/baz', 0755, function (err) {
+ mkdirp('/tmp/foo/bar/baz', function (err) {
if (err) console.error(err)
else console.log('pow!')
});
@@ -19,3 +19,36 @@ Output
pow!
And now /tmp/foo/bar/baz exists, huzzah!
+
+methods
+=======
+
+var mkdirp = require('mkdirp');
+
+mkdirp(dir, mode, cb)
+---------------------
+
+Create a new directory and any necessary subdirectories at `dir` with octal
+permission string `mode`.
+
+If `mode` isn't specified, it defaults to `0777 & (~process.umask())`.
+
+mkdirp.sync(dir, mode)
+----------------------
+
+Synchronously create a new directory and any necessary subdirectories at `dir`
+with octal permission string `mode`.
+
+If `mode` isn't specified, it defaults to `0777 & (~process.umask())`.
+
+install
+=======
+
+With [npm](http://npmjs.org) do:
+
+ npm install mkdirp
+
+license
+=======
+
+MIT/X11
diff --git a/node_modules/mkdirp/index.js b/node_modules/mkdirp/index.js
index 660280146..25f43adfa 100644
--- a/node_modules/mkdirp/index.js
+++ b/node_modules/mkdirp/index.js
@@ -4,6 +4,11 @@ var fs = require('fs');
module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP;
function mkdirP (p, mode, f) {
+ if (typeof mode === 'function' || mode === undefined) {
+ f = mode;
+ mode = 0777 & (~process.umask());
+ }
+
var cb = f || function () {};
if (typeof mode === 'string') mode = parseInt(mode, 8);
p = path.resolve(p);
@@ -23,7 +28,6 @@ function mkdirP (p, mode, f) {
// if the stat fails, then that's super weird.
// let the original EEXIST be the failure reason.
if (er2 || !stat.isDirectory()) cb(er)
- else if ((stat.mode & 0777) !== mode) fs.chmod(p, mode, cb);
else cb();
});
break;
@@ -34,3 +38,42 @@ function mkdirP (p, mode, f) {
}
});
}
+
+mkdirP.sync = function sync (p, mode) {
+ if (mode === undefined) {
+ mode = 0777 & (~process.umask());
+ }
+
+ if (typeof mode === 'string') mode = parseInt(mode, 8);
+ p = path.resolve(p);
+
+ try {
+ fs.mkdirSync(p, mode)
+ }
+ catch (err0) {
+ switch (err0.code) {
+ case 'ENOENT' :
+ var err1 = sync(path.dirname(p), mode)
+ if (err1) throw err1;
+ else return sync(p, mode);
+ break;
+
+ case 'EEXIST' :
+ var stat;
+ try {
+ stat = fs.statSync(p);
+ }
+ catch (err1) {
+ throw err0
+ }
+ if (!stat.isDirectory()) throw err0;
+ else return null;
+ break;
+ default :
+ throw err0
+ break;
+ }
+ }
+
+ return null;
+};
diff --git a/node_modules/mkdirp/package.json b/node_modules/mkdirp/package.json
index 99149f747..1bf9ac782 100644
--- a/node_modules/mkdirp/package.json
+++ b/node_modules/mkdirp/package.json
@@ -1,7 +1,7 @@
{
"name" : "mkdirp",
"description" : "Recursively mkdir, like `mkdir -p`",
- "version" : "0.1.0",
+ "version" : "0.3.0",
"author" : "James Halliday <mail@substack.net> (http://substack.net)",
"main" : "./index",
"keywords" : [