jsHtml2Ods/Jakefile.js

55 lines
1.8 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.
*
* Si $version commence par v, le répertoire de destination est dist, sinon c'est build.
*
*
*/
var fs = require('fs')
, exec = require('child_process').exec;
task('build', function (version) {
var destinationDir = 'build';
if (version.startsWith("v")) {
destinationDir = 'dist';
}
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');
}