multimediaobject
Version:
Multimediaobject library
47 lines (39 loc) • 1.87 kB
JavaScript
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);