57 lines
1.9 KiB
JavaScript
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');
|
|
}
|