|
@@ -1,9 +1,21 @@
|
|
|
const LineReader = require('n-readlines');
|
|
|
-const zip = require('zip-dir');
|
|
|
+const zipdir = require('zip-dir');
|
|
|
const copydir = require('copy-dir');
|
|
|
+const commander = require('commander');
|
|
|
+const del = require('del');
|
|
|
const file = require('./src/file');
|
|
|
const deploy = require('./deploy.json');
|
|
|
|
|
|
+// Lecture des arguments
|
|
|
+commander.version('1.2.0');
|
|
|
+commander
|
|
|
+ .option('-z, --zip', 'create a zip file for each programs', false)
|
|
|
+ .option('-r, --remove', 'zip and deletes the non-zip version of programs', false);
|
|
|
+commander.parse(process.argv);
|
|
|
+const zip = commander.zip || commander.remove;
|
|
|
+const remove = commander.remove;
|
|
|
+
|
|
|
+
|
|
|
// Constante
|
|
|
const OUT = './dist/';
|
|
|
|
|
@@ -28,12 +40,10 @@ deploy.programs.forEach(program => {
|
|
|
}
|
|
|
});
|
|
|
// Copie dossier propre à chaque programme
|
|
|
- copydir('./src/' + program.name, distPath + '/src/' + program.name, {
|
|
|
+ copydir.sync('./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) => {
|
|
@@ -52,11 +62,25 @@ deploy.programs.forEach(program => {
|
|
|
// Ecriture ReadMe
|
|
|
file.put(distPath + '/README.md', readMe(program.part).replace(new RegExp(program.main, 'g'), 'main.js'));
|
|
|
// Zip du code pour distribution
|
|
|
- zip(distPath, {saveTo: distPath + '.zip'}, (err, buffer) => {
|
|
|
- if (err) {
|
|
|
- console.error('Error when zipping files', err);
|
|
|
- }
|
|
|
- });
|
|
|
+ if (zip) {
|
|
|
+ zipdir(distPath, {saveTo: distPath + '.zip'}, (err, buffer) => {
|
|
|
+ if (err) {
|
|
|
+ console.error('Error when zipping files', err);
|
|
|
+ } else {
|
|
|
+ console.info(`Zip file created for ${program.name} in ${distPath}.zip`);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // Message de fin
|
|
|
+ console.info(`${program.name} deployed in ${distPath}`);
|
|
|
+ // Si besoins on supprime les versions non zipper des dossier
|
|
|
+ if (remove) {
|
|
|
+ del(distPath + '/**').then(deletedPaths => {
|
|
|
+ file.fs.rmdir(distPath, () => {
|
|
|
+ console.info(`Directory ${distPath} deleted`);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
// Fonction découpage readme
|