1 |
|
2 | var mapToRegistry = require('./utils/map-to-registry.js')
|
3 | var npm = require('./npm')
|
4 | var output = require('./utils/output.js')
|
5 |
|
6 | module.exports = team
|
7 |
|
8 | team.subcommands = ['create', 'destroy', 'add', 'rm', 'ls', 'edit']
|
9 |
|
10 | team.usage =
|
11 | 'npm team create <scope:team>\n' +
|
12 | 'npm team destroy <scope:team>\n' +
|
13 | 'npm team add <scope:team> <user>\n' +
|
14 | 'npm team rm <scope:team> <user>\n' +
|
15 | 'npm team ls <scope>|<scope:team>\n' +
|
16 | 'npm team edit <scope:team>'
|
17 |
|
18 | team.completion = function (opts, cb) {
|
19 | var argv = opts.conf.argv.remain
|
20 | if (argv.length === 2) {
|
21 | return cb(null, team.subcommands)
|
22 | }
|
23 | switch (argv[2]) {
|
24 | case 'ls':
|
25 | case 'create':
|
26 | case 'destroy':
|
27 | case 'add':
|
28 | case 'rm':
|
29 | case 'edit':
|
30 | return cb(null, [])
|
31 | default:
|
32 | return cb(new Error(argv[2] + ' not recognized'))
|
33 | }
|
34 | }
|
35 |
|
36 | function team (args, cb) {
|
37 |
|
38 | var cmd = args.shift()
|
39 | var entity = (args.shift() || '').split(':')
|
40 | return mapToRegistry('/', npm.config, function (err, uri, auth) {
|
41 | if (err) { return cb(err) }
|
42 | try {
|
43 | return npm.registry.team(cmd, uri, {
|
44 | auth: auth,
|
45 | scope: entity[0].replace(/^@/, ''),
|
46 | team: entity[1],
|
47 | user: args.shift()
|
48 | }, function (err, data) {
|
49 | !err && data && output(JSON.stringify(data, undefined, 2))
|
50 | cb(err, data)
|
51 | })
|
52 | } catch (e) {
|
53 | cb(e.message + '\n\nUsage:\n' + team.usage)
|
54 | }
|
55 | })
|
56 | }
|