UNPKG

zapier-platform-cli

Version:

The CLI for apps in the Zapier Developer Platform.

49 lines (41 loc) 1.43 kB
'use strict'; var fetch = require('node-fetch'); var path = require('path'); var tmp = require('tmp'); var fse = require('fs-extra'); var AdmZip = require('adm-zip'); var _require = require('./files'), writeFile = _require.writeFile, copyDir = _require.copyDir; var LAMBDA_VERSION = 'v6.10.2'; var downloadAndUnzipTo = function downloadAndUnzipTo(key, destDir) { var fragment = 'zapier-platform-example-app-' + key; var folderInZip = fragment + '-master'; var url = 'https://codeload.github.com/zapier/' + fragment + '/zip/master'; var tempDir = tmp.tmpNameSync(); var tempFilePath = path.resolve(tempDir, 'zapier-template.zip'); return fse.ensureDir(tempDir).then(function () { return fetch(url); }).then(function (res) { return res.buffer(); }).then(function (buffer) { return writeFile(tempFilePath, buffer); }).then(function () { var zip = new AdmZip(tempFilePath); zip.extractAllTo(tempDir, true); return path.join(tempDir, folderInZip); }).then(function (currPath) { return copyDir(currPath, destDir); }).then(function () { return fse.writeFile(path.join(destDir, '.nvmrc'), LAMBDA_VERSION + '\n'); }).then(function () { return fse.remove(tempDir); }); }; var removeReadme = function removeReadme(dir) { return fse.remove(path.join(dir, 'README.md')); }; module.exports = { downloadAndUnzipTo: downloadAndUnzipTo, removeReadme: removeReadme };