const copydir = require('copy-dir'); const file = require('./src/file'); const deploy = require('./deploy.json'); // Constante const OUT = './dist/'; // Creation dossier destination file.makedir(OUT); // Séparation de chaque programme deploy.programs.forEach(program => { // Création du dossier const distPath = OUT + program.name; file.makedir(distPath); // Copie des fichiers commun file.makedir(distPath + '/src'); file.fs.readdirSync('./src').forEach(f => { if (!file.isDir('./src/' + f)) { file.fs.copyFile('./src/' + f, distPath + '/src/' + f, (err) => { if (err) throw err; }); } }); // Copie dossier propre à chaque programme copydir('./src/' + program.name, distPath + '/src/' + program.name, { utimes: true, mode: true, cover: true }, (err) => { if (err) throw err; }); // Copie fichier main file.fs.copyFile(program.main, distPath + '/main.js', (err) => { if (err) throw err; }); // Copie package.json const pckg = require('./package.json'); pckg.scripts = program.scripts; pckg.version = program.version; program.rm_dependencies.forEach(elt => { delete pckg.dependencies[elt]; }); let json = JSON.stringify(pckg, null, 4); json = json.replace(new RegExp(program.main, 'g'), 'main.js'); file.put(distPath + '/package.json', json); });