UNPKG

bw-cli

Version:

The Brightwork (bw) command line deployment tool. Build & deploy serverless RESTful APIs in minutes.

65 lines (51 loc) 1.75 kB
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(); });