From 77294a34604042875456a137957c1bc2d1c2404f Mon Sep 17 00:00:00 2001 From: steveoni Date: Tue, 24 Nov 2020 11:46:49 +0100 Subject: [PATCH] [helpers][m]: helper function to copy files and install packages --- packages/create-portal-app/helpers/copy.js | 16 +++++++++++ packages/create-portal-app/helpers/install.js | 27 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 packages/create-portal-app/helpers/copy.js create mode 100644 packages/create-portal-app/helpers/install.js diff --git a/packages/create-portal-app/helpers/copy.js b/packages/create-portal-app/helpers/copy.js new file mode 100644 index 00000000..96b4fb35 --- /dev/null +++ b/packages/create-portal-app/helpers/copy.js @@ -0,0 +1,16 @@ + +const cpy = require("cpy") +const path = require("path"); +const fs = require('fs'); + +module.exports = function copy(root,destination){ + const dest_path = [process.cwd(), destination].join(path.sep) + if(fs.existsSync(dest_path)){ + if(fs.readdirSync(dest_path).length > 0) return Promise.reject(`directory ${dest_path} exist and not empty`); + } + return cpy(root, dest_path); +} + +// (async ()=> { +// await copy([process.cwd(),"templates"].join(path.sep), "newme"); +// })().catch(e=> console.log(chalk.red(e))); \ No newline at end of file diff --git a/packages/create-portal-app/helpers/install.js b/packages/create-portal-app/helpers/install.js new file mode 100644 index 00000000..e4f924b8 --- /dev/null +++ b/packages/create-portal-app/helpers/install.js @@ -0,0 +1,27 @@ +const spawn = require('cross-spawn'); +const { resolve } = require('path'); +const path = require('path'); + +module.exports = function install(projectName, isYarn){ + return new Promise((resolve, reject)=>{ + const appPath = [process.cwd(), projectName].join(path.sep); + //change the directory to the app directory + process.chdir(appPath); + + let command = isYarn ? "yarn": "npm"; + let args = isYarn ? [''] : ["install"]; + let exec = spawn(command,args, { + stdio: 'inherit', + env: { ...process.env, ADBLOCK: '1', DISABLE_OPENCOLLECTIVE: '1' }, + }) + + exec.on('close', (code)=>{ + if (code !== 0) { + reject({ command: `${command} ${args[0]}` }) + return + } + resolve() + }); + }); + +} \ No newline at end of file