0.0.4 • Published 7 years ago
baduba v0.0.4
baduba
Build tool for conditional composing file tree.
Methods
Api
config( configFolder, destination, configArrow )
Configure baduba.
- configFolder: folder with configuration files
- destination: destination folder
- configArrow: array with configuration files in priority list. Last one have highest priority.
run( watching )
Run baduba.
- watching: Boolean flag. True - watch mode
config( engine, callback )
Setup engine.
- engine: engine name.
- callback: callback
Configuration files
Files.
folder: optional string
Relative path for source files.
ignoremask: _optional array of string
List of ignored file masks. See https://www.npmjs.com/package/minimatch
allowmask _optional array of string
List of allowed filemasks. By default all files is allowed.
filemap optional object <filename: sourceFilename>
Map of source files.
virtual optional object
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
opts array
Options. Object combined from all opts and passed to engines.
transformer (TODO)
transformer
delete (TODO)
Deletor
Ussage sample
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