1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/agendav_ynh.git synced 2024-09-03 20:36:12 +02:00
agendav_ynh/sources/web/templates_src/duster.js
2014-01-07 17:53:08 +01:00

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');
});
};