0.0.4 • Published 7 years ago

baduba v0.0.4

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

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