mirror of
https://github.com/electron/node-gyp.git
synced 2025-09-16 05:53:41 +02:00
update mkdirp to v0.3.3
This commit is contained in:
parent
af5ffeedb4
commit
bb762da24f
13 changed files with 53 additions and 357 deletions
7
node_modules/mkdirp/README.markdown
generated
vendored
7
node_modules/mkdirp/README.markdown
generated
vendored
|
@ -3,6 +3,8 @@ mkdirp
|
||||||
|
|
||||||
Like `mkdir -p`, but in node.js!
|
Like `mkdir -p`, but in node.js!
|
||||||
|
|
||||||
|
[](http://travis-ci.org/substack/node-mkdirp)
|
||||||
|
|
||||||
example
|
example
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
@ -33,6 +35,9 @@ permission string `mode`.
|
||||||
|
|
||||||
If `mode` isn't specified, it defaults to `0777 & (~process.umask())`.
|
If `mode` isn't specified, it defaults to `0777 & (~process.umask())`.
|
||||||
|
|
||||||
|
`cb(err, made)` fires with the error or the first directory `made`
|
||||||
|
that had to be created, if any.
|
||||||
|
|
||||||
mkdirp.sync(dir, mode)
|
mkdirp.sync(dir, mode)
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
|
@ -41,6 +46,8 @@ with octal permission string `mode`.
|
||||||
|
|
||||||
If `mode` isn't specified, it defaults to `0777 & (~process.umask())`.
|
If `mode` isn't specified, it defaults to `0777 & (~process.umask())`.
|
||||||
|
|
||||||
|
Returns the first directory that had to be created, if any.
|
||||||
|
|
||||||
install
|
install
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
|
59
node_modules/mkdirp/index.js
generated
vendored
59
node_modules/mkdirp/index.js
generated
vendored
|
@ -3,77 +3,92 @@ var fs = require('fs');
|
||||||
|
|
||||||
module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP;
|
module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP;
|
||||||
|
|
||||||
function mkdirP (p, mode, f) {
|
function mkdirP (p, mode, f, made) {
|
||||||
if (typeof mode === 'function' || mode === undefined) {
|
if (typeof mode === 'function' || mode === undefined) {
|
||||||
f = mode;
|
f = mode;
|
||||||
mode = 0777 & (~process.umask());
|
mode = 0777 & (~process.umask());
|
||||||
}
|
}
|
||||||
|
if (!made) made = null;
|
||||||
|
|
||||||
var cb = f || function () {};
|
var cb = f || function () {};
|
||||||
if (typeof mode === 'string') mode = parseInt(mode, 8);
|
if (typeof mode === 'string') mode = parseInt(mode, 8);
|
||||||
p = path.resolve(p);
|
p = path.resolve(p);
|
||||||
|
|
||||||
fs.mkdir(p, mode, function (er) {
|
fs.mkdir(p, mode, function (er) {
|
||||||
if (!er) return cb();
|
if (!er) {
|
||||||
|
made = made || p;
|
||||||
|
return cb(null, made);
|
||||||
|
}
|
||||||
switch (er.code) {
|
switch (er.code) {
|
||||||
case 'ENOENT':
|
case 'ENOENT':
|
||||||
mkdirP(path.dirname(p), mode, function (er) {
|
mkdirP(path.dirname(p), mode, function (er, made) {
|
||||||
if (er) cb(er);
|
if (er) cb(er, made);
|
||||||
else mkdirP(p, mode, cb);
|
else mkdirP(p, mode, cb, made);
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'EISDIR':
|
||||||
|
case 'EPERM':
|
||||||
|
// Operation not permitted or already is a dir.
|
||||||
|
// This is the error you get when trying to mkdir('c:/')
|
||||||
|
// on windows, or mkdir('/') on unix. Make sure it's a
|
||||||
|
// dir by falling through to the EEXIST case.
|
||||||
|
case 'EROFS':
|
||||||
|
// a read-only file system.
|
||||||
|
// However, the dir could already exist, in which case
|
||||||
|
// the EROFS error will be obscuring a EEXIST!
|
||||||
|
// Fallthrough to that case.
|
||||||
case 'EEXIST':
|
case 'EEXIST':
|
||||||
fs.stat(p, function (er2, stat) {
|
fs.stat(p, function (er2, stat) {
|
||||||
// if the stat fails, then that's super weird.
|
// if the stat fails, then that's super weird.
|
||||||
// let the original EEXIST be the failure reason.
|
// let the original error be the failure reason.
|
||||||
if (er2 || !stat.isDirectory()) cb(er)
|
if (er2 || !stat.isDirectory()) cb(er, made)
|
||||||
else cb();
|
else cb(null, made);
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
cb(er);
|
cb(er, made);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
mkdirP.sync = function sync (p, mode) {
|
mkdirP.sync = function sync (p, mode, made) {
|
||||||
if (mode === undefined) {
|
if (mode === undefined) {
|
||||||
mode = 0777 & (~process.umask());
|
mode = 0777 & (~process.umask());
|
||||||
}
|
}
|
||||||
|
if (!made) made = null;
|
||||||
|
|
||||||
if (typeof mode === 'string') mode = parseInt(mode, 8);
|
if (typeof mode === 'string') mode = parseInt(mode, 8);
|
||||||
p = path.resolve(p);
|
p = path.resolve(p);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
fs.mkdirSync(p, mode)
|
fs.mkdirSync(p, mode);
|
||||||
|
made = made || p;
|
||||||
}
|
}
|
||||||
catch (err0) {
|
catch (err0) {
|
||||||
switch (err0.code) {
|
switch (err0.code) {
|
||||||
case 'ENOENT' :
|
case 'ENOENT' :
|
||||||
var err1 = sync(path.dirname(p), mode)
|
made = sync(path.dirname(p), mode, made);
|
||||||
if (err1) throw err1;
|
sync(p, mode, made);
|
||||||
else return sync(p, mode);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'EEXIST' :
|
case 'EEXIST' :
|
||||||
var stat;
|
var stat;
|
||||||
try {
|
try {
|
||||||
stat = fs.statSync(p);
|
stat = fs.statSync(p);
|
||||||
}
|
}
|
||||||
catch (err1) {
|
catch (err1) {
|
||||||
throw err0
|
throw err0;
|
||||||
}
|
}
|
||||||
if (!stat.isDirectory()) throw err0;
|
if (!stat.isDirectory()) throw err0;
|
||||||
else return null;
|
|
||||||
break;
|
break;
|
||||||
default :
|
default :
|
||||||
throw err0
|
throw err0
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return made;
|
||||||
};
|
};
|
||||||
|
|
15
node_modules/mkdirp/package.json
generated
vendored
15
node_modules/mkdirp/package.json
generated
vendored
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "mkdirp",
|
"name": "mkdirp",
|
||||||
"description": "Recursively mkdir, like `mkdir -p`",
|
"description": "Recursively mkdir, like `mkdir -p`",
|
||||||
"version": "0.3.0",
|
"version": "0.3.3",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "James Halliday",
|
"name": "James Halliday",
|
||||||
"email": "mail@substack.net",
|
"email": "mail@substack.net",
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
"test": "tap test/*.js"
|
"test": "tap test/*.js"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"tap": "0.0.x"
|
"tap": "~0.2.4"
|
||||||
},
|
},
|
||||||
"license": "MIT/X11",
|
"license": "MIT/X11",
|
||||||
"engines": {
|
"engines": {
|
||||||
|
@ -30,12 +30,15 @@
|
||||||
"name": "tootallnate",
|
"name": "tootallnate",
|
||||||
"email": "nathan@tootallnate.net"
|
"email": "nathan@tootallnate.net"
|
||||||
},
|
},
|
||||||
"_id": "mkdirp@0.3.0",
|
"_id": "mkdirp@0.3.3",
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
"optionalDependencies": {},
|
"optionalDependencies": {},
|
||||||
"_engineSupported": true,
|
"_engineSupported": true,
|
||||||
"_npmVersion": "1.1.10",
|
"_npmVersion": "1.1.18",
|
||||||
"_nodeVersion": "v0.6.13",
|
"_nodeVersion": "v0.6.18",
|
||||||
"_defaultsLoaded": true,
|
"_defaultsLoaded": true,
|
||||||
"_from": "mkdirp@0.3.0"
|
"dist": {
|
||||||
|
"shasum": "55f3d469ed6dac2b15ba71a69ca9d2bdd166cb01"
|
||||||
|
},
|
||||||
|
"_from": "mkdirp@0.3"
|
||||||
}
|
}
|
||||||
|
|
38
node_modules/mkdirp/test/chmod.js
generated
vendored
38
node_modules/mkdirp/test/chmod.js
generated
vendored
|
@ -1,38 +0,0 @@
|
||||||
var mkdirp = require('../').mkdirp;
|
|
||||||
var path = require('path');
|
|
||||||
var fs = require('fs');
|
|
||||||
var test = require('tap').test;
|
|
||||||
|
|
||||||
var ps = [ '', 'tmp' ];
|
|
||||||
|
|
||||||
for (var i = 0; i < 25; i++) {
|
|
||||||
var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
ps.push(dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
var file = ps.join('/');
|
|
||||||
|
|
||||||
test('chmod-pre', function (t) {
|
|
||||||
var mode = 0744
|
|
||||||
mkdirp(file, mode, function (er) {
|
|
||||||
t.ifError(er, 'should not error');
|
|
||||||
fs.stat(file, function (er, stat) {
|
|
||||||
t.ifError(er, 'should exist');
|
|
||||||
t.ok(stat && stat.isDirectory(), 'should be directory');
|
|
||||||
t.equal(stat && stat.mode & 0777, mode, 'should be 0744');
|
|
||||||
t.end();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
test('chmod', function (t) {
|
|
||||||
var mode = 0755
|
|
||||||
mkdirp(file, mode, function (er) {
|
|
||||||
t.ifError(er, 'should not error');
|
|
||||||
fs.stat(file, function (er, stat) {
|
|
||||||
t.ifError(er, 'should exist');
|
|
||||||
t.ok(stat && stat.isDirectory(), 'should be directory');
|
|
||||||
t.end();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
37
node_modules/mkdirp/test/clobber.js
generated
vendored
37
node_modules/mkdirp/test/clobber.js
generated
vendored
|
@ -1,37 +0,0 @@
|
||||||
var mkdirp = require('../').mkdirp;
|
|
||||||
var path = require('path');
|
|
||||||
var fs = require('fs');
|
|
||||||
var test = require('tap').test;
|
|
||||||
|
|
||||||
var ps = [ '', 'tmp' ];
|
|
||||||
|
|
||||||
for (var i = 0; i < 25; i++) {
|
|
||||||
var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
ps.push(dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
var file = ps.join('/');
|
|
||||||
|
|
||||||
// a file in the way
|
|
||||||
var itw = ps.slice(0, 3).join('/');
|
|
||||||
|
|
||||||
|
|
||||||
test('clobber-pre', function (t) {
|
|
||||||
console.error("about to write to "+itw)
|
|
||||||
fs.writeFileSync(itw, 'I AM IN THE WAY, THE TRUTH, AND THE LIGHT.');
|
|
||||||
|
|
||||||
fs.stat(itw, function (er, stat) {
|
|
||||||
t.ifError(er)
|
|
||||||
t.ok(stat && stat.isFile(), 'should be file')
|
|
||||||
t.end()
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
test('clobber', function (t) {
|
|
||||||
t.plan(2);
|
|
||||||
mkdirp(file, 0755, function (err) {
|
|
||||||
t.ok(err);
|
|
||||||
t.equal(err.code, 'ENOTDIR');
|
|
||||||
t.end();
|
|
||||||
});
|
|
||||||
});
|
|
28
node_modules/mkdirp/test/mkdirp.js
generated
vendored
28
node_modules/mkdirp/test/mkdirp.js
generated
vendored
|
@ -1,28 +0,0 @@
|
||||||
var mkdirp = require('../');
|
|
||||||
var path = require('path');
|
|
||||||
var fs = require('fs');
|
|
||||||
var test = require('tap').test;
|
|
||||||
|
|
||||||
test('woo', function (t) {
|
|
||||||
t.plan(2);
|
|
||||||
var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
|
|
||||||
var file = '/tmp/' + [x,y,z].join('/');
|
|
||||||
|
|
||||||
mkdirp(file, 0755, function (err) {
|
|
||||||
if (err) t.fail(err);
|
|
||||||
else path.exists(file, function (ex) {
|
|
||||||
if (!ex) t.fail('file not created')
|
|
||||||
else fs.stat(file, function (err, stat) {
|
|
||||||
if (err) t.fail(err)
|
|
||||||
else {
|
|
||||||
t.equal(stat.mode & 0777, 0755);
|
|
||||||
t.ok(stat.isDirectory(), 'target not a directory');
|
|
||||||
t.end();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
});
|
|
||||||
});
|
|
32
node_modules/mkdirp/test/perm.js
generated
vendored
32
node_modules/mkdirp/test/perm.js
generated
vendored
|
@ -1,32 +0,0 @@
|
||||||
var mkdirp = require('../');
|
|
||||||
var path = require('path');
|
|
||||||
var fs = require('fs');
|
|
||||||
var test = require('tap').test;
|
|
||||||
|
|
||||||
test('async perm', function (t) {
|
|
||||||
t.plan(2);
|
|
||||||
var file = '/tmp/' + (Math.random() * (1<<30)).toString(16);
|
|
||||||
|
|
||||||
mkdirp(file, 0755, function (err) {
|
|
||||||
if (err) t.fail(err);
|
|
||||||
else path.exists(file, function (ex) {
|
|
||||||
if (!ex) t.fail('file not created')
|
|
||||||
else fs.stat(file, function (err, stat) {
|
|
||||||
if (err) t.fail(err)
|
|
||||||
else {
|
|
||||||
t.equal(stat.mode & 0777, 0755);
|
|
||||||
t.ok(stat.isDirectory(), 'target not a directory');
|
|
||||||
t.end();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
test('async root perm', function (t) {
|
|
||||||
mkdirp('/tmp', 0755, function (err) {
|
|
||||||
if (err) t.fail(err);
|
|
||||||
t.end();
|
|
||||||
});
|
|
||||||
t.end();
|
|
||||||
});
|
|
39
node_modules/mkdirp/test/perm_sync.js
generated
vendored
39
node_modules/mkdirp/test/perm_sync.js
generated
vendored
|
@ -1,39 +0,0 @@
|
||||||
var mkdirp = require('../');
|
|
||||||
var path = require('path');
|
|
||||||
var fs = require('fs');
|
|
||||||
var test = require('tap').test;
|
|
||||||
|
|
||||||
test('sync perm', function (t) {
|
|
||||||
t.plan(2);
|
|
||||||
var file = '/tmp/' + (Math.random() * (1<<30)).toString(16) + '.json';
|
|
||||||
|
|
||||||
mkdirp.sync(file, 0755);
|
|
||||||
path.exists(file, function (ex) {
|
|
||||||
if (!ex) t.fail('file not created')
|
|
||||||
else fs.stat(file, function (err, stat) {
|
|
||||||
if (err) t.fail(err)
|
|
||||||
else {
|
|
||||||
t.equal(stat.mode & 0777, 0755);
|
|
||||||
t.ok(stat.isDirectory(), 'target not a directory');
|
|
||||||
t.end();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
test('sync root perm', function (t) {
|
|
||||||
t.plan(1);
|
|
||||||
|
|
||||||
var file = '/tmp';
|
|
||||||
mkdirp.sync(file, 0755);
|
|
||||||
path.exists(file, function (ex) {
|
|
||||||
if (!ex) t.fail('file not created')
|
|
||||||
else fs.stat(file, function (err, stat) {
|
|
||||||
if (err) t.fail(err)
|
|
||||||
else {
|
|
||||||
t.ok(stat.isDirectory(), 'target not a directory');
|
|
||||||
t.end();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
});
|
|
||||||
});
|
|
41
node_modules/mkdirp/test/race.js
generated
vendored
41
node_modules/mkdirp/test/race.js
generated
vendored
|
@ -1,41 +0,0 @@
|
||||||
var mkdirp = require('../').mkdirp;
|
|
||||||
var path = require('path');
|
|
||||||
var fs = require('fs');
|
|
||||||
var test = require('tap').test;
|
|
||||||
|
|
||||||
test('race', function (t) {
|
|
||||||
t.plan(4);
|
|
||||||
var ps = [ '', 'tmp' ];
|
|
||||||
|
|
||||||
for (var i = 0; i < 25; i++) {
|
|
||||||
var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
ps.push(dir);
|
|
||||||
}
|
|
||||||
var file = ps.join('/');
|
|
||||||
|
|
||||||
var res = 2;
|
|
||||||
mk(file, function () {
|
|
||||||
if (--res === 0) t.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
mk(file, function () {
|
|
||||||
if (--res === 0) t.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
function mk (file, cb) {
|
|
||||||
mkdirp(file, 0755, function (err) {
|
|
||||||
if (err) t.fail(err);
|
|
||||||
else path.exists(file, function (ex) {
|
|
||||||
if (!ex) t.fail('file not created')
|
|
||||||
else fs.stat(file, function (err, stat) {
|
|
||||||
if (err) t.fail(err)
|
|
||||||
else {
|
|
||||||
t.equal(stat.mode & 0777, 0755);
|
|
||||||
t.ok(stat.isDirectory(), 'target not a directory');
|
|
||||||
if (cb) cb();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
32
node_modules/mkdirp/test/rel.js
generated
vendored
32
node_modules/mkdirp/test/rel.js
generated
vendored
|
@ -1,32 +0,0 @@
|
||||||
var mkdirp = require('../');
|
|
||||||
var path = require('path');
|
|
||||||
var fs = require('fs');
|
|
||||||
var test = require('tap').test;
|
|
||||||
|
|
||||||
test('rel', function (t) {
|
|
||||||
t.plan(2);
|
|
||||||
var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
|
|
||||||
var cwd = process.cwd();
|
|
||||||
process.chdir('/tmp');
|
|
||||||
|
|
||||||
var file = [x,y,z].join('/');
|
|
||||||
|
|
||||||
mkdirp(file, 0755, function (err) {
|
|
||||||
if (err) t.fail(err);
|
|
||||||
else path.exists(file, function (ex) {
|
|
||||||
if (!ex) t.fail('file not created')
|
|
||||||
else fs.stat(file, function (err, stat) {
|
|
||||||
if (err) t.fail(err)
|
|
||||||
else {
|
|
||||||
process.chdir(cwd);
|
|
||||||
t.equal(stat.mode & 0777, 0755);
|
|
||||||
t.ok(stat.isDirectory(), 'target not a directory');
|
|
||||||
t.end();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
});
|
|
||||||
});
|
|
27
node_modules/mkdirp/test/sync.js
generated
vendored
27
node_modules/mkdirp/test/sync.js
generated
vendored
|
@ -1,27 +0,0 @@
|
||||||
var mkdirp = require('../');
|
|
||||||
var path = require('path');
|
|
||||||
var fs = require('fs');
|
|
||||||
var test = require('tap').test;
|
|
||||||
|
|
||||||
test('sync', function (t) {
|
|
||||||
t.plan(2);
|
|
||||||
var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
|
|
||||||
var file = '/tmp/' + [x,y,z].join('/');
|
|
||||||
|
|
||||||
var err = mkdirp.sync(file, 0755);
|
|
||||||
if (err) t.fail(err);
|
|
||||||
else path.exists(file, function (ex) {
|
|
||||||
if (!ex) t.fail('file not created')
|
|
||||||
else fs.stat(file, function (err, stat) {
|
|
||||||
if (err) t.fail(err)
|
|
||||||
else {
|
|
||||||
t.equal(stat.mode & 0777, 0755);
|
|
||||||
t.ok(stat.isDirectory(), 'target not a directory');
|
|
||||||
t.end();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
});
|
|
28
node_modules/mkdirp/test/umask.js
generated
vendored
28
node_modules/mkdirp/test/umask.js
generated
vendored
|
@ -1,28 +0,0 @@
|
||||||
var mkdirp = require('../');
|
|
||||||
var path = require('path');
|
|
||||||
var fs = require('fs');
|
|
||||||
var test = require('tap').test;
|
|
||||||
|
|
||||||
test('implicit mode from umask', function (t) {
|
|
||||||
t.plan(2);
|
|
||||||
var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
|
|
||||||
var file = '/tmp/' + [x,y,z].join('/');
|
|
||||||
|
|
||||||
mkdirp(file, function (err) {
|
|
||||||
if (err) t.fail(err);
|
|
||||||
else path.exists(file, function (ex) {
|
|
||||||
if (!ex) t.fail('file not created')
|
|
||||||
else fs.stat(file, function (err, stat) {
|
|
||||||
if (err) t.fail(err)
|
|
||||||
else {
|
|
||||||
t.equal(stat.mode & 0777, 0777 & (~process.umask()));
|
|
||||||
t.ok(stat.isDirectory(), 'target not a directory');
|
|
||||||
t.end();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
});
|
|
||||||
});
|
|
27
node_modules/mkdirp/test/umask_sync.js
generated
vendored
27
node_modules/mkdirp/test/umask_sync.js
generated
vendored
|
@ -1,27 +0,0 @@
|
||||||
var mkdirp = require('../');
|
|
||||||
var path = require('path');
|
|
||||||
var fs = require('fs');
|
|
||||||
var test = require('tap').test;
|
|
||||||
|
|
||||||
test('umask sync modes', function (t) {
|
|
||||||
t.plan(2);
|
|
||||||
var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
|
|
||||||
|
|
||||||
var file = '/tmp/' + [x,y,z].join('/');
|
|
||||||
|
|
||||||
var err = mkdirp.sync(file);
|
|
||||||
if (err) t.fail(err);
|
|
||||||
else path.exists(file, function (ex) {
|
|
||||||
if (!ex) t.fail('file not created')
|
|
||||||
else fs.stat(file, function (err, stat) {
|
|
||||||
if (err) t.fail(err)
|
|
||||||
else {
|
|
||||||
t.equal(stat.mode & 0777, (0777 & (~process.umask())));
|
|
||||||
t.ok(stat.isDirectory(), 'target not a directory');
|
|
||||||
t.end();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
});
|
|
Loading…
Add table
Add a link
Reference in a new issue