Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/run-script.js')
-rw-r--r--lib/run-script.js126
1 files changed, 65 insertions, 61 deletions
diff --git a/lib/run-script.js b/lib/run-script.js
index 2ca30d0e8..cd57b4570 100644
--- a/lib/run-script.js
+++ b/lib/run-script.js
@@ -1,14 +1,14 @@
module.exports = runScript
-var lifecycle = require("./utils/lifecycle.js")
- , npm = require("./npm.js")
- , path = require("path")
- , readJson = require("read-package-json")
- , log = require("npmlog")
- , chain = require("slide").chain
+var lifecycle = require('./utils/lifecycle.js')
+var npm = require('./npm.js')
+var path = require('path')
+var readJson = require('read-package-json')
+var log = require('npmlog')
+var chain = require('slide').chain
-runScript.usage = "npm run-script <command> [-- <args>...]"
- + "\n\nalias: npm run"
+runScript.usage = 'npm run-script <command> [-- <args>...]' +
+ '\n\nalias: npm run'
runScript.completion = function (opts, cb) {
@@ -20,20 +20,19 @@ runScript.completion = function (opts, cb) {
if (argv.length === 3) {
// either specified a script locally, in which case, done,
// or a package, in which case, complete against its scripts
- var json = path.join(npm.localPrefix, "package.json")
+ var json = path.join(npm.localPrefix, 'package.json')
return readJson(json, function (er, d) {
- if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er)
+ if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er)
if (er) d = {}
var scripts = Object.keys(d.scripts || {})
- console.error("local scripts", scripts)
+ console.error('local scripts', scripts)
if (scripts.indexOf(argv[2]) !== -1) return cb()
// ok, try to find out which package it was, then
- var pref = npm.config.get("global") ? npm.config.get("prefix")
+ var pref = npm.config.get('global') ? npm.config.get('prefix')
: npm.localPrefix
- var pkgDir = path.resolve( pref, "node_modules"
- , argv[2], "package.json" )
+ var pkgDir = path.resolve(pref, 'node_modules', argv[2], 'package.json')
readJson(pkgDir, function (er, d) {
- if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er)
+ if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er)
if (er) d = {}
var scripts = Object.keys(d.scripts || {})
return cb(null, scripts)
@@ -41,8 +40,8 @@ runScript.completion = function (opts, cb) {
})
}
- readJson(path.join(npm.localPrefix, "package.json"), function (er, d) {
- if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er)
+ readJson(path.join(npm.localPrefix, 'package.json'), function (er, d) {
+ if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er)
d = d || {}
cb(null, Object.keys(d.scripts || {}))
})
@@ -52,23 +51,29 @@ function runScript (args, cb) {
if (!args.length) return list(cb)
var pkgdir = npm.localPrefix
- , cmd = args.shift()
+ var cmd = args.shift()
- readJson(path.resolve(pkgdir, "package.json"), function (er, d) {
+ readJson(path.resolve(pkgdir, 'package.json'), function (er, d) {
if (er) return cb(er)
run(d, pkgdir, cmd, args, cb)
})
}
-function list(cb) {
- var json = path.join(npm.localPrefix, "package.json")
- var cmdList = [ "publish", "install", "uninstall"
- , "test", "stop", "start", "restart"
- ].reduce(function (l, p) {
- return l.concat(["pre" + p, p, "post" + p])
- }, [])
- return readJson(json, function(er, d) {
- if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er)
+function list (cb) {
+ var json = path.join(npm.localPrefix, 'package.json')
+ var cmdList = [
+ 'publish',
+ 'install',
+ 'uninstall',
+ 'test',
+ 'stop',
+ 'start',
+ 'restart'
+ ].reduce(function (l, p) {
+ return l.concat(['pre' + p, p, 'post' + p])
+ }, [])
+ return readJson(json, function (er, d) {
+ if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er)
if (er) d = {}
var allScripts = Object.keys(d.scripts || {})
var scripts = []
@@ -78,37 +83,36 @@ function list(cb) {
else runScripts.push(script)
})
- if (log.level === "silent") {
+ if (log.level === 'silent') {
return cb(null, allScripts)
}
- if (npm.config.get("json")) {
+ if (npm.config.get('json')) {
console.log(JSON.stringify(d.scripts || {}, null, 2))
return cb(null, allScripts)
}
- if (npm.config.get("parseable")) {
- allScripts.forEach(function(script) {
- console.log(script + ":" + d.scripts[script])
+ if (npm.config.get('parseable')) {
+ allScripts.forEach(function (script) {
+ console.log(script + ':' + d.scripts[script])
})
return cb(null, allScripts)
}
- var s = "\n "
- var prefix = " "
+ var s = '\n '
+ var prefix = ' '
if (scripts.length) {
- console.log("Lifecycle scripts included in %s:", d.name)
+ console.log('Lifecycle scripts included in %s:', d.name)
}
- scripts.forEach(function(script) {
+ scripts.forEach(function (script) {
console.log(prefix + script + s + d.scripts[script])
})
if (!scripts.length && runScripts.length) {
- console.log("Scripts available in %s via `npm run-script`:", d.name)
+ console.log('Scripts available in %s via `npm run-script`:', d.name)
+ } else if (runScripts.length) {
+ console.log('\navailable via `npm run-script`:')
}
- else if (runScripts.length) {
- console.log("\navailable via `npm run-script`:")
- }
- runScripts.forEach(function(script) {
+ runScripts.forEach(function (script) {
console.log(prefix + script + s + d.scripts[script])
})
return cb(null, allScripts)
@@ -119,38 +123,38 @@ function run (pkg, wd, cmd, args, cb) {
if (!pkg.scripts) pkg.scripts = {}
var cmds
- if (cmd === "restart" && !pkg.scripts.restart) {
+ if (cmd === 'restart' && !pkg.scripts.restart) {
cmds = [
- "prestop", "stop", "poststop",
- "restart",
- "prestart", "start", "poststart"
+ 'prestop', 'stop', 'poststop',
+ 'restart',
+ 'prestart', 'start', 'poststart'
]
} else {
if (!pkg.scripts[cmd]) {
- if (cmd === "test") {
- pkg.scripts.test = "echo \"Error: no test specified\""
- } else if (cmd === "env") {
- if (process.platform === "win32") {
- log.verbose("run-script using default platform env: SET (Windows)")
- pkg.scripts[cmd] = "SET"
+ if (cmd === 'test') {
+ pkg.scripts.test = 'echo \'Error: no test specified\''
+ } else if (cmd === 'env') {
+ if (process.platform === 'win32') {
+ log.verbose('run-script using default platform env: SET (Windows)')
+ pkg.scripts[cmd] = 'SET'
} else {
- log.verbose("run-script using default platform env: env (Unix)")
- pkg.scripts[cmd] = "env"
+ log.verbose('run-script using default platform env: env (Unix)')
+ pkg.scripts[cmd] = 'env'
}
- } else if (npm.config.get("if-present")) {
- return cb(null);
+ } else if (npm.config.get('if-present')) {
+ return cb(null)
} else {
- return cb(new Error("missing script: " + cmd))
+ return cb(new Error('missing script: ' + cmd))
}
}
cmds = [cmd]
}
if (!cmd.match(/^(pre|post)/)) {
- cmds = ["pre"+cmd].concat(cmds).concat("post"+cmd)
+ cmds = ['pre' + cmd].concat(cmds).concat('post' + cmd)
}
- log.verbose("run-script", cmds)
+ log.verbose('run-script', cmds)
chain(cmds.map(function (c) {
// pass cli arguments after -- to script.
if (pkg.scripts[c] && c === cmd) {
@@ -165,8 +169,8 @@ function run (pkg, wd, cmd, args, cb) {
// join arguments after '--' and pass them to script,
// handle special characters such as ', ", ' '.
function joinArgs (args) {
- var joinedArgs = ""
- args.forEach(function(arg) {
+ var joinedArgs = ''
+ args.forEach(function (arg) {
joinedArgs += ' "' + arg.replace(/"/g, '\\"') + '"'
})
return joinedArgs