const noop = require('./noop');
|
const parallel = require('./parallel');
|
|
const fs = require('fs');
|
const path = require('path');
|
|
exports = function(p, cb) {
|
cb = cb || noop;
|
p = path.resolve(p);
|
|
fs.lstat(p, function(err, stat) {
|
if (err) return cb(err);
|
|
const isDir = stat.isDirectory();
|
|
if (!isDir) {
|
return fs.unlink(p, function(err) {
|
return err ? cb(err) : cb();
|
});
|
}
|
|
fs.readdir(p, function(err, files) {
|
if (err) return cb(err);
|
|
const len = files.length;
|
|
const cbs = [];
|
for (let i = 0; i < len; i++) {
|
cbs.push(
|
(function(file) {
|
return function(cb) {
|
exports(file, cb);
|
};
|
})(path.resolve(p, files[i]))
|
);
|
}
|
|
parallel(cbs, function(err) {
|
if (err) return cb(err);
|
|
fs.rmdir(p, function(err) {
|
return err ? cb(err) : cb();
|
});
|
});
|
});
|
});
|
};
|
|
module.exports = exports;
|