|
@@ -0,0 +1,74 @@
|
|
|
+const copydir = require('copy-dir');
|
|
|
+const LineReader = require('n-readlines');
|
|
|
+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);
|
|
|
+ // Ecriture ReadMe
|
|
|
+ file.put(distPath + '/README.md', readMe(program.part).replace(new RegExp(program.main, 'g'), 'main.js'));
|
|
|
+});
|
|
|
+
|
|
|
+// Fonction découpage readme
|
|
|
+function readMe(part) {
|
|
|
+ const liner = new LineReader('./README.md');
|
|
|
+ let data = '';
|
|
|
+ let line = liner.next().toString();
|
|
|
+ while (line !== 'false' && line.indexOf('## Partie ') === -1) {
|
|
|
+ data += '\n' + line;
|
|
|
+ line = liner.next().toString();
|
|
|
+ }
|
|
|
+ while (line !== 'false' && line.indexOf('## Partie ' + part) === -1) {
|
|
|
+ line = liner.next().toString();
|
|
|
+ }
|
|
|
+ data += '\n' + line;
|
|
|
+ line = liner.next().toString();
|
|
|
+ while (line !== 'false' && line.indexOf('## Partie ') === -1) {
|
|
|
+ data += '\n' + line;
|
|
|
+ line = liner.next().toString();
|
|
|
+ }
|
|
|
+ if (line !== 'false') {
|
|
|
+ liner.close();
|
|
|
+ }
|
|
|
+ return data;
|
|
|
+}
|