bw-cli
Version:
The Brightwork (bw) command line deployment tool. Build & deploy serverless RESTful APIs in minutes.
65 lines (51 loc) • 1.75 kB
JavaScript
require('./env')();
var program = require('commander');
var co = require('co');
var prompt = require('co-prompt');
var fs = require('fs');
const request = require('request-promise');
var path = require('path');
var directory = global.workingPath;
var options_path = path.join(global.workingPath, '/.bw.json');
program
.parse(process.argv);
program
.parse(process.argv);
co(function *genPrompt() {
var username = yield prompt('Email: ');
var password = yield prompt.password('Password: ');
return yield [username, password];
})
.then(function fulfilled(options) {
try {
var url = settings.api + '/auth/local/token';
console.log('Requesting authentication token...');
var auth = "Basic " + new Buffer(options[0] + ":" + options[1]).toString("base64");
request({
headers : {
"Authorization" : auth
},
uri: url,
method: 'GET',
json: true
}).then(function(token){
console.log('...acquired');
settings.token = token;
fs.writeFileSync(options_path, JSON.stringify(settings), 'utf8', { flags: 'w+' });
console.log('...cached')
console.log('You may now deploy your app using \'bw push\'');
process.exit();
}).catch(function(err){
console.log('Failed to get token.');
printError(err);
});
} catch(e) {
console.log('Token Request Failed')
console.log('*** no token has been saved ***');
console.log('Please check your username and password and try again');
console.log();
}
}).catch(function rejected(err) {
printError(err);
process.stdin.pause();
});