@nathanfaucett/file_utils
Version:
file utils for node.js
61 lines (56 loc) • 1.74 kB
JavaScript
var fs = require("fs"),
dive = require("./dive");
module.exports = remove;
function remove(path, callback) {
var called = false;
function done(error) {
if (!called) {
callback(error);
called = true;
}
}
fs.stat(path, function onState(error, stat) {
if (error) {
callback(error);
} else if (stat.isDirectory()) {
dive(
path,
{ directories: true, all: true },
function onAction(file, next) {
remove(file.path, next);
},
function onDone(error) {
if (error) {
done(error);
} else {
dive(
path,
{
files: false,
directories: true
},
function onAction(file, next) {
remove(file.path, next);
},
function onDone(error) {
if (error) {
done(error);
} else {
fs.rmdir(path, done);
}
}
);
}
}
);
} else {
fs.unlink(path, function(error) {
if (error) {
done(error);
} else {
done();
}
});
}
});
}