UNPKG

o3-panther-cli

Version:
59 lines (55 loc) 1.68 kB
var args = require('minimist')(process.argv.slice(2)); var req = require('request-promise'); var jszip = require('jszip'); var path = require('path'); var fs = require('fs'); var zip = new jszip(); var root = path.resolve(args._[0]); var host = 'Panther'; function addFile(filepath, cut) { var p = filepath.substr(cut); if (fs.lstatSync(filepath).isDirectory()) { if (p != '') { console.log("Archiving Folder:", filepath); zip.folder(p); } var directory = fs.readdirSync(filepath); directory.forEach(function (subfilepath) { addFile(path.join(filepath, subfilepath), cut); }); } else { console.log("Archiving File:", filepath) zip.file(p, fs.readFileSync(filepath, 'binary'), { binary: true }); } }; addFile(root, root.length + 1); console.log('compressing files'); zip.generateAsync({ type: 'nodebuffer', compression: "DEFLATE", compressionOptions: { level: 9 }, streamFiles: true }).then(function (content) { console.log('sending files'); fs.writeFileSync('panther_deployment.zip', content); var opt = { method: 'POST', uri: 'http://panther-dev.origami3.com:8080/api/deploy/www/' + host, formData: { file: { value: fs.createReadStream('panther_deployment.zip'), options: { filename: 'deploy.zip', contentType: 'application/zip' } } } } return req(opt).then(function (body) { console.log(body); }).catch(function (err) { console.log(err.message); }); });