UNPKG

ryuu

Version:

Domo App Dev Studio CLI, The main tool used to create, edit, and publish app designs to Domo

74 lines 3.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var fs = require("fs-extra"); var path = require("path"); var extract = require("extract-zip"); var inquirer = require("inquirer"); var shell = require("shelljs"); var login_1 = require("../util/login"); var log_1 = require("../util/log"); module.exports = function (program) { program .command('download') .description('download a Custom App design') .option('-i, --design-id <id>', 'design id') .option('-d, --design-version <design-version>', 'design version') .action(function (args) { new login_1.Login() .getClient() .then(function (client) { var prompts = []; if (!args.designId) { prompts.push({ type: 'input', message: 'design id', name: 'designId', }); } if (!args.designVersion) { prompts.push({ type: 'input', message: 'version', name: 'version', default: 'latest', }); } inquirer.prompt(prompts).then(function (answers) { var designId = args.designId || answers.designId; var version = args.designVersion || answers.version; client .download(designId, version) .then(function (req) { if (req.status === 200) { var regexp = /filename="(.*)"/; var name_1 = req.headers['content-disposition'].match(regexp)[1] || 'domoapp'; var writeStream = fs.createWriteStream('./' + name_1 + '.zip', { flags: 'w+', mode: 438, }); //@ts-ignore req.data.pipe(writeStream); writeStream.on('finish', function () { var source = path.resolve('./' + name_1 + '.zip'); var target = path.resolve('./' + name_1); extract(source, { dir: target }).catch(function () { shell.chmod('-R', 'u+w', target); fs.remove(source); log_1.log.fail('Extraction of design from its compressed zip file failed, removing downloaded zip.'); }); }); } else { log_1.log.fail('Design not found. Make sure you have the correct design id.'); } }) .catch(function (e) { return log_1.log.clientRequestFailed('Unable to download design ' + designId); }); }); }) .catch(log_1.log.notAuthenticated); }); }; //# sourceMappingURL=download.js.map