mkdirp.
This commit is contained in:
parent
da701cbef4
commit
e2626c32f0
2
bin/node
2
bin/node
@ -5,7 +5,7 @@ var utils = bcoin.utils;
|
|||||||
var assert = utils.assert;
|
var assert = utils.assert;
|
||||||
|
|
||||||
process.on('uncaughtException', function(err) {
|
process.on('uncaughtException', function(err) {
|
||||||
bcoin.debug(err ? err.stack + '' : err + '');
|
bcoin.error(err);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -9,11 +9,8 @@ var utils = require('./utils');
|
|||||||
var assert = utils.assert;
|
var assert = utils.assert;
|
||||||
var fs;
|
var fs;
|
||||||
|
|
||||||
try {
|
if (!utils.isBrowser)
|
||||||
fs = require('f' + 's');
|
fs = require('f' + 's');
|
||||||
} catch (e) {
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A BCoin "environment" which is used for
|
* A BCoin "environment" which is used for
|
||||||
@ -383,42 +380,43 @@ Environment.prototype.now = function now() {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a full directory structure.
|
* Create a full directory structure.
|
||||||
* @param {String} dir
|
* @param {String} path
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function mkdirp(dir) {
|
function mkdirp(path) {
|
||||||
var path = require('path');
|
var i, parts;
|
||||||
var i, parts, name;
|
|
||||||
|
|
||||||
if (!fs)
|
if (!fs)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
dir = path.normalize(dir);
|
path = path.replace(/\\/g, '/');
|
||||||
dir = dir.replace(/\\/g, '/');
|
path = path.replace(/\/+$/, '');
|
||||||
dir = dir.replace(/\/$/, '');
|
parts = path.split(/\/+/);
|
||||||
parts = dir.split('/');
|
path = '';
|
||||||
|
|
||||||
|
if (process.platform === 'win32') {
|
||||||
|
if (parts[0].indexOf(':') !== -1)
|
||||||
|
path = parts.shift() + '/';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (parts[0].length === 0) {
|
||||||
|
parts.shift();
|
||||||
|
path = '/';
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < parts.length; i++) {
|
for (i = 0; i < parts.length; i++) {
|
||||||
if (i === 0) {
|
path += parts[i];
|
||||||
if (process.platform === 'win32') {
|
|
||||||
if (parts[0].indexOf(':') !== -1)
|
|
||||||
continue;
|
|
||||||
} else {
|
|
||||||
if (parts[0].length === 0)
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
name = parts.slice(0, i + 1).join('/');
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
fs.statSync(name);
|
fs.statSync(path);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (e.code === 'ENOENT')
|
if (e.code === 'ENOENT')
|
||||||
fs.mkdirSync(name, 488 /* 0750 */);
|
fs.mkdirSync(path, 488 /* 0750 */);
|
||||||
else
|
else
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
path += '/';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user