mirror of
https://github.com/YunoHost-Apps/agendav_ynh.git
synced 2024-09-03 20:36:12 +02:00
49 lines
1.3 KiB
JavaScript
49 lines
1.3 KiB
JavaScript
// duster.js
|
|
// Watch directory of dust.js templates and automatically compile them
|
|
// by Dan McGrady http://dmix.ca
|
|
|
|
var src_path = "./src/"; // directory of dust templates are stored with .dust file extension
|
|
var public_path = "../public/js/templates/"; // directory where the compiled .js files should be saved to
|
|
|
|
var fs = require('fs');
|
|
var dust = require('dustjs-linkedin');
|
|
var watcher = require('nodewatch');
|
|
|
|
|
|
watcher.add(src_path);
|
|
|
|
var regexpSwp = new RegExp(/\.swp/);
|
|
|
|
watcher.onChange(function(path, prev, curr, action) {
|
|
if (!path.match(regexpSwp)) {
|
|
console.log('Something changed');
|
|
setTimeout(compile_templates, 400, path);
|
|
}
|
|
});
|
|
|
|
|
|
var compile_templates = function compilar(path) {
|
|
var files = fs.readdirSync(src_path);
|
|
var result = '';
|
|
|
|
for (var i=0;i<files.length;i++) {
|
|
if (!files[i].match(regexpSwp)) {
|
|
var filename = files[i].replace(".dust","");
|
|
var contents = fs.readFileSync(src_path + files[i], 'utf8');
|
|
try {
|
|
result += dust.compile(contents, filename);
|
|
} catch (err) {
|
|
console.log('Oops! There was an error compiling: ');
|
|
console.log(err);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
var filepath = public_path + "templates.js";
|
|
|
|
fs.writeFile(filepath, result, function (err) {
|
|
if (err) throw err;
|
|
console.log('Saved');
|
|
});
|
|
};
|