apeman-tmpl
Version:
Template manager for apeman.
42 lines (34 loc) • 1.14 kB
JavaScript
const argx = require('argx')
const co = require('co')
const arrayreduce = require('arrayreduce')
const arrayfilter = require('arrayfilter')
const apemancwd = require('apemancwd')
const listTemplate = require('./templating/list_template')
const renderTemplate = require('./templating/render_template')
const apemanfile = require('apemanfile')
let concatArray = arrayreduce.arrayConcat()
let rejectEmpty = arrayfilter.emptyReject()
/** @lends apemanTmpl */
function apemanTmpl (names, options = {}) {
let args = argx(arguments)
options = args.pop('object') || {}
names = args.remain().filter(rejectEmpty).reduce(concatArray, [])
let configuration = apemanfile(options.configuration)
let cwd = apemancwd.create({ prefix: 'apeman-tmpl' })
let verbose = !!options.verbose
let force = !!options.force
return co(function * () {
cwd.chdir(configuration.$cwd || process.cwd())
if (options.list) {
yield listTemplate(configuration, names)
} else {
yield renderTemplate(configuration, names, {
verbose,
force
})
}
cwd.restore()
})
}
module.exports = apemanTmpl