Updating wrench rmdirSyncRecursive to support permissions issues for windows.
This commit is contained in:
parent
5c716f9c0d
commit
793c61eec0
3 changed files with 45 additions and 10 deletions
|
|
@ -12,7 +12,8 @@
|
|||
*/
|
||||
|
||||
var fs = require("fs"),
|
||||
_path = require("path");
|
||||
_path = require("path"),
|
||||
isWindows = !!process.platform.match(/^win/);
|
||||
|
||||
/* wrench.readdirSyncRecursive("directory_path");
|
||||
*
|
||||
|
|
@ -122,7 +123,7 @@ exports.readdirRecursive = function(baseDir, fn) {
|
|||
|
||||
|
||||
|
||||
/* wrench.rmdirSyncRecursive("directory_path", forceDelete, failSilent);
|
||||
/* wrench.rmdirSyncRecursive("directory_path", failSilent);
|
||||
*
|
||||
* Recursively dives through directories and obliterates everything about it. This is a
|
||||
* Sync-function, which blocks things until it's done. No idea why anybody would want an
|
||||
|
|
@ -140,16 +141,27 @@ exports.rmdirSyncRecursive = function(path, failSilent) {
|
|||
|
||||
/* Loop through and delete everything in the sub-tree after checking it */
|
||||
for(var i = 0; i < files.length; i++) {
|
||||
var currFile = fs.lstatSync(_path.join(path, files[i]));
|
||||
var file = _path.join(path, files[i]);
|
||||
var currFile = fs.lstatSync(file);
|
||||
|
||||
if(currFile.isDirectory()) // Recursive function back to the beginning
|
||||
exports.rmdirSyncRecursive(_path.join(path, files[i]));
|
||||
if(currFile.isDirectory()) {
|
||||
// Recursive function back to the beginning
|
||||
exports.rmdirSyncRecursive(file);
|
||||
} else if(currFile.isSymbolicLink()) {
|
||||
// Unlink symlinks
|
||||
if (isWindows) {
|
||||
fs.chmodSync(file, 666) // Windows needs this unless joyent/node#3006 is resolved..
|
||||
}
|
||||
|
||||
else if(currFile.isSymbolicLink()) // Unlink symlinks
|
||||
fs.unlinkSync(_path.join(path, files[i]));
|
||||
fs.unlinkSync(file);
|
||||
} else {
|
||||
// Assume it's a file - perhaps a try/catch belongs here?
|
||||
if (isWindows) {
|
||||
fs.chmodSync(file, 666) // Windows needs this unless joyent/node#3006 is resolved..
|
||||
}
|
||||
|
||||
else // Assume it's a file - perhaps a try/catch belongs here?
|
||||
fs.unlinkSync(_path.join(path, files[i]));
|
||||
fs.unlinkSync(file);
|
||||
}
|
||||
}
|
||||
|
||||
/* Now that we know everything in the sub-tree has been deleted, we can delete the main
|
||||
|
|
|
|||
Reference in a new issue