UNPKG

810 BJavaScriptView Raw
1/**
2 * Define a bud for bin.
3 * @memberof module:ape-tmpl/lib
4 * @function binBud
5 * @param {object} config - Configuration
6 * @param {object} signature - Bin signature.
7 * @returns {object} - Bud object.
8 */
9
10'use strict'
11
12const assert = require('assert')
13const objnest = require('objnest')
14const evaljson = require('evaljson')
15const _tmpl = require('./_tmpl')
16
17function binBud (config) {
18 let signature = config.signature
19 assert.ok(signature, 'config.signature is required.')
20 return {
21 force: true,
22 mode: '555',
23 mkdirp: true,
24 tmpl: _tmpl('hbs/bin.hbs'),
25 path: config.path || signature.name,
26 data: {
27 done: config.done,
28 lib: config.lib || '../lib',
29 get signature () {
30 return evaljson(objnest.expand(signature))
31 }
32 }
33 }
34}
35
36module.exports = binBud