zapier-platform-cli
Version:
The CLI for managing integrations in Zapier Developer Platform.
34 lines (28 loc) • 792 B
JavaScript
const { resolve } = require('path');
const tmp = require('tmp');
const { startSpinner, endSpinner } = require('./display');
const { copyDir, removeDir, ensureDir } = require('./files');
const initApp = async (path, createFunc) => {
const appDir = resolve(path);
const tempAppDir = tmp.tmpNameSync();
const copyOpts = {
clobber: false,
onCopy: (file) => {
startSpinner(`Copying ${file}`);
endSpinner();
},
onSkip: (file) => {
startSpinner(`File ${file} already exists (skipped)`);
endSpinner();
},
};
await removeDir(tempAppDir);
await ensureDir(tempAppDir);
await createFunc(tempAppDir);
await ensureDir(appDir);
await copyDir(tempAppDir, appDir, copyOpts);
await removeDir(tempAppDir);
};
module.exports = {
initApp,
};