diff options
author | isaacs <i@izs.me> | 2012-08-13 20:51:56 +0400 |
---|---|---|
committer | isaacs <i@izs.me> | 2012-08-13 20:57:02 +0400 |
commit | 8808e63533da631835d803ffc809705c1016edad (patch) | |
tree | 27158e6cea89b573cbb5fd96bb1a0180460e5996 | |
parent | 50f91bfb27649967002e0a1ad18eb753ef83d82b (diff) |
Show all versions in 'npm version<noargs>'
-rwxr-xr-x | bin/npm-cli.js | 7 | ||||
-rw-r--r-- | lib/version.js | 20 |
2 files changed, 22 insertions, 5 deletions
diff --git a/bin/npm-cli.js b/bin/npm-cli.js index a71985b37..79e5c9702 100755 --- a/bin/npm-cli.js +++ b/bin/npm-cli.js @@ -50,10 +50,9 @@ if (conf.version) { } if (conf.versions) { - var v = process.versions - v.npm = npm.version - console.log(v) - return + npm.command = "version" + conf.usage = false + npm.argv = [] } log.info("using", "npm@%s", npm.version) diff --git a/lib/version.js b/lib/version.js index a1edf8575..fb00e21d3 100644 --- a/lib/version.js +++ b/lib/version.js @@ -20,8 +20,26 @@ version.usage = "npm version [<newversion> | major | minor | patch | build]\n" function version (args, silent, cb_) { if (typeof cb_ !== "function") cb_ = silent, silent = false - if (args.length !== 1) return cb_(version.usage) + if (args.length > 1) return cb_(version.usage) fs.readFile(path.join(process.cwd(), "package.json"), function (er, data) { + if (!args.length) { + var v = {} + Object.keys(process.versions).forEach(function (k) { + v[k] = process.versions[k] + }) + v.npm = npm.version + try { + data = JSON.parse(data.toString()) + } catch (er) { + data = null + } + if (data && data.name && data.version) { + v[data.name] = data.version + } + console.log(v) + return cb_() + } + if (er) { log.error("version", "No package.json found") return cb_(er) |