UNPKG

multimediaobject

Version:
47 lines (39 loc) 1.87 kB
const fs = require('fs-extra'); const path = require('path'); const chalk = require('chalk'); const NAMESPACE_MACRO = '{{ namespace }}'; const SCENE_MACRO = '{{ scene }}'; const projectDirectory = path.resolve(__dirname, '../'); const srcFolder = path.resolve(projectDirectory, 'src'); const configFolder = path.resolve(srcFolder, 'config'); const error = err => console.error(chalk.bold.red('ERROR:', err)); const pendingMessage = messages => console.log(chalk.white(chalk.white.bgRed(' NOK '), ...messages)); const successMessage = messages => console.log(chalk.white(chalk.white.bgGreen(' OK '), ...messages)); const step1 = (callback) => { pendingMessage([chalk.blue(`copying ${configFolder}/config.tpl.js to config.js`)]); fs.ensureFile(`${configFolder}/config.js`, (file, err) => { if(err) return console.error(err); if (!file) { successMessage([chalk.green(`${configFolder}/config.js copied succesfully`)]); return callback(); } else { return console.log(chalk.green('config not copied')); } }); }; const step2 = () => { pendingMessage([chalk.blue(`configuring ${configFolder}/config.js`)]); const namespace = '_s4mConfig'; const scene = 'scene'; fs.readFile(`${configFolder}/config.tpl.js`, { encoding: 'utf8' }, (err, data) => { if (err) error(err); const replacedData = data.replace(NAMESPACE_MACRO, namespace).replace(SCENE_MACRO, scene); fs.writeFile(`${configFolder}/config.js`, replacedData, { encoding: 'utf8' }, (err2) => { if (err2) error(err2); successMessage([chalk.green(`${configFolder}/config.js copied succesfully`)]); return successMessage([chalk.green(`${configFolder}/config.js succesfully configured with ${namespace} && ${scene}`)]); }); }); }; console.log('======================== INSTALLING MO LIBRARY ========================'); step1(step2);