glass-app-manager
Version:
Informatica's Glass Framework CLI for bootstrapping
46 lines (33 loc) • 1.55 kB
JavaScript
const fs = require('fs');
const globby = require('globby');
const mkdirp = require('make-dir');
const ora = require('ora');
const path = require('path');
const pEachSeries = require('p-each-series');
const chalk = require('chalk');
const copyTemplateFile = require('./common/copyTemplateFile');
const renameFile = require('./common/renameFile');
const copyGlassTemplate = async () => {
const info = {};
// destination of platform folder
const DEST_FOLDER = 'target';
const dest = path.join(process.cwd(), DEST_FOLDER);
info.dest = dest;
await mkdirp(dest);
// source of this will be platform code inside glass folder, just above this file
const SOURCE_FOLDER = '../../platform'; // change here when app changes to platform folder
const source = path.join(__dirname, SOURCE_FOLDER);
console.log(`Starting copying from ${chalk.cyan(source)} to ${chalk.cyan(dest)} folder`);
// grab all files from source folder
const files = await globby([source, '!'+source+'/node_modules/', '!'+source+'/coverage/', '!'+source+'/public/*.ico'], { dot: true });
const promise = pEachSeries(files, async (file) => {
return copyTemplateFile({file, source, dest});
})
ora.promise(promise, `Copying ${source} template to ${dest}`);
await promise;
console.log(chalk.green(`Copying completed`));
// temporary fix until we publish to @informatica repo
renameFile(dest, '.npmrc', 'tempnpmrc');
return dest;
}
copyGlassTemplate();