bw-cli
Version:
The Brightwork (bw) command line deployment tool. Build & deploy serverless RESTful APIs in minutes.
55 lines (45 loc) • 1.72 kB
JavaScript
;
require('./env')();
const program = require('commander');
const request = require('superagent');
const compress = require('./bw-compress');
const path = require('path');
const directory = global.workingPath;
const tempFolder = path.join(path.resolve('./'), '/.tmp');
const compressed_path = path.join(tempFolder, 'compressed.tar.gz');
program
.parse(process.argv);
try {
let url = settings.api + '/app/deploy';
let auth = authenticate({});
console.log('Creating application package...');
return compress.copy(directory).then(function() {
return compress.zip().then(function () {
console.log('Pushing application package to %s', settings.api);
request
.post(url)
.set(auth.headers)
.attach('bundle', compressed_path, 'compressed.tar.gz')
.on('progress', function(e) {
console.log('uploading...' + (100 * (e.loaded / e.total)).toFixed(0) + '% ');
})
.end(function (res) {
console.log('upload completed');
if (res) {
return printError(res); // printError(err);
} else {
console.log('Succeeded, app has been deployed!');
compress.clean();
}
});
});
}).catch(function(err){
console.log('Failed to package app.');
printError(err);
});
} catch(e) {
console.log('Push failed')
console.log('*** no authentication token present ***');
console.log('Please run "bw login" or pass settings as command options');
console.log();
}