summaryrefslogtreecommitdiff
path: root/deps/npm/test/common-tap.js
blob: d6d09ed9bcaa9e524c59c03e3736231b3e1f61f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
var spawn = require("child_process").spawn

var port = exports.port = 1337
exports.registry = "http://localhost:" + port
process.env.npm_config_loglevel = "error"

var bin = exports.bin = require.resolve("../bin/npm-cli.js")
var once = require("once")
exports.npm = function (cmd, opts, cb) {
  cb = once(cb)
  cmd = [bin].concat(cmd)
  opts = opts || {}

  var stdout = ""
    , stderr = ""
    , node = process.execPath
    , child = spawn(node, cmd, opts)

  if (child.stderr) child.stderr.on("data", function (chunk) {
    stderr += chunk
  })

  if (child.stdout) child.stdout.on("data", function (chunk) {
    stdout += chunk
  })

  child.on("error", cb)

  child.on("close", function (code, signal) {
    cb(null, code, stdout, stderr)
  })
}