aboutsummaryrefslogtreecommitdiff
path: root/node_modules/shelljs/src/mkdir.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/shelljs/src/mkdir.js')
-rw-r--r--node_modules/shelljs/src/mkdir.js10
1 files changed, 8 insertions, 2 deletions
diff --git a/node_modules/shelljs/src/mkdir.js b/node_modules/shelljs/src/mkdir.js
index 115f75ca4..44b1b2162 100644
--- a/node_modules/shelljs/src/mkdir.js
+++ b/node_modules/shelljs/src/mkdir.js
@@ -57,9 +57,11 @@ function _mkdir(options, dirs) {
dirs.forEach(function (dir) {
try {
- fs.lstatSync(dir);
+ var stat = fs.lstatSync(dir);
if (!options.fullpath) {
common.error('path already exists: ' + dir, { continue: true });
+ } else if (stat.isFile()) {
+ common.error('cannot create directory ' + dir + ': File exists', { continue: true });
}
return; // skip dir
} catch (e) {
@@ -80,12 +82,16 @@ function _mkdir(options, dirs) {
fs.mkdirSync(dir, parseInt('0777', 8));
}
} catch (e) {
+ var reason;
if (e.code === 'EACCES') {
- common.error('cannot create directory ' + dir + ': Permission denied');
+ reason = 'Permission denied';
+ } else if (e.code === 'ENOTDIR' || e.code === 'ENOENT') {
+ reason = 'Not a directory';
} else {
/* istanbul ignore next */
throw e;
}
+ common.error('cannot create directory ' + dir + ': ' + reason, { continue: true });
}
});
return '';