dirmr

Directory merging & manipulation

  • Used in mesh.
  • Bootstrapping libraries
var dirmr = require('dirmr'),
fs        = require("fs"),
mu        = require("mustache"),
tplData   = {};
 
dirmr().
 
//read the bootstrap directory for the target dirs 
readdir(__dirname + "/src", /^(node|web)$/). 
 
//filter through template files, and fill them - examples are: .mu.html, .ejs.html, .mu.json 
filterFile(dirmr.parseTemplate(tplData)).
 
//copy all the files to the library directory 
join(__dirname + "/lib"). 
 
//called after all files have been copied 
complete(function(errresult) {
    
});
dirmr([__dirname + "/src/node", __dirname + "/src/web"]).
join(__dirname + "/lib");

Joins (merges) the target directories to the output folder

Scans the given directory for dirs to merge

dirmr().
readdir(__dirname + "/src",/^(node|web)$/).
join(__dirname + "/lib");

Copies target directories to output directory without merging

mergedir().
readdir(__dirname + "/src", /^(node|web)$/).
copyEach(__dirname + "/bootstrap").
complete(function(errresult) {
    
})

Sorts the directories

Filters files before they're copied

dirmr().
readdir(__dirname + "/src").
filterFile(function(optionsnext) {
    
    if(!/\.tpl\.\w+/.test(options.name)) return;
 
    //fs.writeFile(options.destination, mustache.to_html(...)) 
 
}).
join(__dirname + "/lib");

Called once the operations are complete

merges JSON files as they're copied to the target directory

dirmr().
readdir(__dirname + "/src").
filterFile(/.merge.json/, dirmr.mergeJSON(".json", { name: 'blah' })).
join(__dirname + "/lib");

Searches for template files, and replaces content with the data given. supported templates: mu, ejs

dirmr().
readdir(__dirname + "/src").
filterFile(dirmr.parseTemplate({ name: 'my-app', version: '0.0.10' })).
join(__dirname + "/lib");