summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/node-gyp/lib/remove.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/node-gyp/lib/remove.js')
-rw-r--r--deps/npm/node_modules/node-gyp/lib/remove.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/deps/npm/node_modules/node-gyp/lib/remove.js b/deps/npm/node_modules/node-gyp/lib/remove.js
new file mode 100644
index 0000000000..eb80981b88
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/lib/remove.js
@@ -0,0 +1,52 @@
+
+module.exports = exports = remove
+
+exports.usage = 'Removes the node development files for the specified version'
+
+/**
+ * Module dependencies.
+ */
+
+var fs = require('fs')
+ , rm = require('rimraf')
+ , path = require('path')
+ , log = require('npmlog')
+ , semver = require('semver')
+
+function remove (gyp, argv, callback) {
+
+ var devDir = gyp.devDir
+ log.verbose('remove', 'using node-gyp dir:', devDir)
+
+ // get the user-specified version to remove
+ var version = argv[0] || gyp.opts.target
+ log.verbose('remove', 'removing target version:', version)
+
+ if (!version) {
+ return callback(new Error('You must specify a version number to remove. Ex: "' + process.version + '"'))
+ }
+
+ var versionSemver = semver.parse(version)
+ if (versionSemver) {
+ // flatten the version Array into a String
+ version = versionSemver.version
+ }
+
+ var versionPath = path.resolve(gyp.devDir, version)
+ log.verbose('remove', 'removing development files for version:', version)
+
+ // first check if its even installed
+ fs.stat(versionPath, function (err, stat) {
+ if (err) {
+ if (err.code == 'ENOENT') {
+ callback(null, 'version was already uninstalled: ' + version)
+ } else {
+ callback(err)
+ }
+ return
+ }
+ // Go ahead and delete the dir
+ rm(versionPath, callback)
+ })
+
+}