UNPKG

bw-cli

Version:

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

55 lines (45 loc) 1.72 kB
'use strict'; 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(); }