diff options
Diffstat (limited to 'deps/npm/lib/utils/gently-rm.js')
-rw-r--r-- | deps/npm/lib/utils/gently-rm.js | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/deps/npm/lib/utils/gently-rm.js b/deps/npm/lib/utils/gently-rm.js index f24309a08..241740fed 100644 --- a/deps/npm/lib/utils/gently-rm.js +++ b/deps/npm/lib/utils/gently-rm.js @@ -9,6 +9,22 @@ var rimraf = require("rimraf") , path = require("path") function gentlyRm (p, gently, cb) { + if (!cb) cb = gently, gently = null + + // never rm the root, prefix, or bin dirs. + // just a safety precaution. + p = path.resolve(p) + if (p === npm.dir || + p === npm.root || + p === npm.bin || + p === npm.prefix || + p === npm.globalDir || + p === npm.globalRoot || + p === npm.globalBin || + p === npm.globalPrefix) { + return cb(new Error("May not delete: " + p)) + } + if (npm.config.get("force") || !gently) { return rimraf(p, cb) } |