Created
November 19, 2014 15:52
-
-
Save alonronin/e4b5840d58042078bb34 to your computer and use it in GitHub Desktop.
Compile dust folder strucure
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var dust = require('dustjs-linkedin'); | |
var diveSync = require("diveSync"); | |
var path = require('path'); | |
var fs = require('fs'); | |
var dir = path.join(__dirname, 'public', 'templates'); | |
var output = path.join(__dirname, 'public', 'js', 'templates.js'); | |
var writer = fs.createWriteStream(output); | |
var files = []; | |
diveSync(dir, { | |
recursive: true, // - If set to false, this will ignore subdirectories. | |
all: false, // - If set to true, this will show "dot files" and | |
// files in "dot directories", e.g. ".gitinore" or | |
// ".git/HEAD". | |
directories: false, // - If set to true, this will show directories, too. | |
filter: function filter(file, dir) { | |
if(!dir) return path.extname(file) === '.dust'; | |
return true; | |
} | |
// - Function that returns true for all paths that should | |
// not be ignored. | |
}, function(err, file) { | |
if (err) throw err; | |
var dir_name = path.dirname(file).replace(dir, ''); | |
var file_name = path.basename(file, '.dust'); | |
var name = dir_name ? dir_name + '/' + file_name : file_name; | |
var template = fs.readFileSync(file, 'utf8'); | |
files.push(dust.compile(template, name)); | |
}); | |
fs.writeFileSync(output, files.join('\n')); | |
console.log('%d dust templates compiled.', files.length); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment