UNPKG

1.05 kBJavaScriptView Raw
1'use strict';
2
3// foreign modules
4
5const prompt = require('prompt');
6
7// local modules
8
9const auth = require('../lib/auth');
10const scope = require('../lib/scope');
11
12// this module
13
14function promptCredential () {
15 return new Promise((resolve, reject) => {
16 prompt.start();
17 prompt.get({
18 properties: {
19 credential: {
20 hidden: true,
21 message: 'token or cookie, input is hidden',
22 required: true
23 }
24 }
25 }, (err, result) => {
26 if (err) {
27 reject(err);
28 return;
29 }
30 resolve(result.credential);
31 });
32 });
33}
34
35function getCredential (input) {
36 if (!input || !input[0]) {
37 return promptCredential();
38 }
39 return Promise.resolve(input[0]);
40}
41
42module.exports = function (input, flags, options) {
43 scope.read()
44 .catch(() => Promise.reject(new Error('must set project scope first')))
45 .then(() => getCredential(input))
46 .then((credential) => auth.login({ credential }))
47 .catch((err) => {
48 console.error(err);
49 process.exit(1);
50 });
51};