diff options
Diffstat (limited to 'deps/npm/lib/run-script.js')
-rw-r--r-- | deps/npm/lib/run-script.js | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/deps/npm/lib/run-script.js b/deps/npm/lib/run-script.js index 0808f2edd..8797ccd9d 100644 --- a/deps/npm/lib/run-script.js +++ b/deps/npm/lib/run-script.js @@ -70,7 +70,7 @@ runScript.completion = function (opts, cb) { } function runScript (args, cb) { - if (!args.length) return cb(runScript.usage) + if (!args.length) return list(cb) var pkgdir = args.length === 1 ? process.cwd() : path.resolve(npm.dir, args[0]) , cmd = args.pop() @@ -81,6 +81,36 @@ function runScript (args, cb) { }) } +function list(cb) { + var json = path.join(npm.prefix, 'package.json') + return readJson(json, function(er, d) { + if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) + if (er) d = {} + var scripts = Object.keys(d.scripts || {}) + + if (log.level === "silent") { + return cb(null, scripts) + } + + if (npm.config.get("json")) { + console.log(JSON.stringify(d.scripts || {}, null, 2)) + return cb(null, scripts) + } + + var s = ":" + var prefix = "" + if (!npm.config.get("parseable")) { + s = "\n " + prefix = " " + console.log("Available scripts in the %s package:", d.name) + } + scripts.forEach(function(script) { + console.log(prefix + script + s + d.scripts[script]) + }) + return cb(null, scripts) + }) +} + function run (pkg, wd, cmd, cb) { var cmds = [] if (!pkg.scripts) pkg.scripts = {} |