jsHtml2Ods/Jakefile.js

57 lines
1.9 KiB
JavaScript

/* global jake,process */
/**
* Installer Jake avec npm install -g jake (NodeJs doit être installé préalablement)
*
* Lancer la compilation avec jake build[$version] où $version est le numéro de version.
*
* Un deuxième paramètre peut être passé : jake build[$version,$destination]. Si $destination est égal à "dist", le fichier est placé dans dist/ et non dir/
*
*
*/
var fs = require('fs')
, exec = require('child_process').exec;
task('build', function (version,destination) {
var destinationDir = 'build';
switch(destination) {
case 'dist':
destinationDir = 'dist';
break;
}
jake.rmRf(destinationDir);
jake.mkdirP(destinationDir);
compileJs(version, destinationDir + '/html2ods.js');
});
task('default', ['build']);
/**
* Compile les différents fichiers Javascript suivant l'ordre indiqué dans list.txt
* en un fichier Javascript unique
* Les fichiers Javascript sont vidés de leurs commentaires et des espaces blancs surnuméraires.
*
* @param {string} version version de la compilation
* @param {string} destination nom du fichier de destination
* @returns {void}
*/
function compileJs(version, destination) {
var files = fs.readFileSync('list.txt', 'utf8').split("\n");
var result = "";
for (let i = 0, len = files.length; i < len; i++) {
var fileName = files[i];
if (fileName.length > 0) {
var contents = fs.readFileSync("src/js/" + fileName, 'utf8');
contents = contents.replace(/\/\*[\s\S]*?\*\//g,'');
result = result + contents;
console.log(files[i]);
}
}
result = result.replace(/\n\s*\n/g, "\n");
var moduleContent = fs.readFileSync("src/js/Html2Ods.js", 'utf8');
moduleContent = "/* version: " + version + " */\n" + moduleContent.replace(/\/\*[\s\S]*?\*\//g,'');
moduleContent = moduleContent.replace("//compile target", result);
fs.writeFileSync(destination, moduleContent, 'utf8');
}