Build tool for conditional composing file tree.
Api
Configure baduba.
- configFolder: folder with configuration files
- destination: destination folder
- configArrow: array with configuration files in priority list. Last one have highest priority.
Run baduba.
- watching: Boolean flag. True - watch mode
Setup engine.
- engine: engine name.
- callback: callback
Files.
Relative path for source files.
List of ignored file masks. See https://www.npmjs.com/package/minimatch
List of allowed filemasks. By default all files is allowed.
Map of source files.
Virtual files
virtual:
#Virtual destanation file name
"virtuals/test.js":
#generator module name
engine: swig
template: test.swig
#generator extra parameters
opts:
param: value
"virtuals/test.json":
engine: dump
opts:
local:val
Options. Object combined from all opts and passed to engines.
transformer
Deletor
Folder sample/index.js contains usage sample.
var baduba = require('baduba');
var fs = require('fs-extra');
baduba.config('src', 'dst', ['lowprio', 'middleprio', 'topprio']);
baduba.engine('cp', engineHardlink);
baduba.engine('swig', engineSwig);
baduba.run(true);
function engineCopy(cb, dstFile, srcFile, globalOpts, localOpts) {
fs.copy(srcFile, dstFile, cb)
}
var swig = require('swig');
swig.setDefaults({
varControls: ['[[{', '}]]'],
tagControls: ['[[%', '%]]'],
cmtControls: ['[[#', '#]]']
});
function engineSwig(cb, dstFile, srcFile, globalOpts, localOpts) {
var template = swig.compileFile( localOpts.templateFile );
var output = template({
global: globalOpts,
loc: localOpts.opts,
src: srcFile,
dst: dstFile
});
fs.writeFile( dstFile, output, cb);
}
== Config files