node/deps/npm/lib/team.js
Kat Marchán d15ba80d6f deps: upgrade to npm 2.14.2
PR-URL: https://github.com/nodejs/node/pull/2696
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-09-06 21:38:09 +10:00

55 lines
1.4 KiB
JavaScript

var mapToRegistry = require('./utils/map-to-registry.js')
var npm = require('./npm')
module.exports = team
team.subcommands = ['create', 'destroy', 'add', 'rm', 'ls', 'edit']
team.usage =
'npm team create <scope:team>\n' +
'npm team destroy <scope:team>\n' +
'npm team add <scope:team> <user>\n' +
'npm team rm <scope:team> <user>\n' +
'npm team ls <scope>|<scope:team>\n' +
'npm team edit <scope:team>'
team.completion = function (opts, cb) {
var argv = opts.conf.argv.remain
if (argv.length === 2) {
return cb(null, team.subcommands)
}
switch (argv[2]) {
case 'ls':
case 'create':
case 'destroy':
case 'add':
case 'rm':
case 'edit':
return cb(null, [])
default:
return cb(new Error(argv[2] + ' not recognized'))
}
}
function team (args, cb) {
// Entities are in the format <scope>:<team>
var cmd = args.shift()
var entity = (args.shift() || '').split(':')
return mapToRegistry('/', npm.config, function (err, uri, auth) {
if (err) { return cb(err) }
try {
return npm.registry.team(cmd, uri, {
auth: auth,
scope: entity[0],
team: entity[1],
user: args.shift()
}, function (err, data) {
!err && data && console.log(JSON.stringify(data, undefined, 2))
cb(err, data)
})
} catch (e) {
cb(e.message + '\n\nUsage:\n' + team.usage)
}
})
}