ape-tmpl
Version:
Templates for ape framework.
52 lines (44 loc) • 4.48 kB
JavaScript
/**
* Define a bud for LICENSE
* @memberof module:ape-tmpl/lib
* @function licenseBud
* @param {object} config - Configuration.
* @param {string} config.type - Type of license.
* @param {number} config.year - Copy right year.
* @param {string} config.holder - License holder name.
* @returns {object} - Bud object.
*/
;
var assert = require('assert');
var _tmpl = require('./_tmpl');
/** @lends licenseBud */
function licenseBud(config) {
assert.ok(config.type, 'config.type is required.');
assert.ok(config.holder, 'config.holder is required.');
return {
force: true,
mode: '444',
path: 'LICENSE',
tmpl: _tmplForType(String(config.type).trim()),
data: {
holder: config.holder,
year: config.year || new Date().getFullYear()
}
};
}
function _tmplForType(type) {
switch (type) {
case 'mit':
case 'MIT':
return _tmpl('hbs/LICENSE_MIT.md.hbs');
case 'Apache-2.0':
case 'Apache2':
case 'APACHE-2.0':
case 'APACHE2':
return _tmpl('hbs/LICENSE_Apache-2.0.md.hbs');
default:
throw new Error("Unknown license type: ".concat(type));
}
}
module.exports = licenseBud;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpY2Vuc2VfYnVkLmpzIl0sIm5hbWVzIjpbImFzc2VydCIsInJlcXVpcmUiLCJfdG1wbCIsImxpY2Vuc2VCdWQiLCJjb25maWciLCJvayIsInR5cGUiLCJob2xkZXIiLCJmb3JjZSIsIm1vZGUiLCJwYXRoIiwidG1wbCIsIl90bXBsRm9yVHlwZSIsIlN0cmluZyIsInRyaW0iLCJkYXRhIiwieWVhciIsIkRhdGUiLCJnZXRGdWxsWWVhciIsIkVycm9yIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLElBQU1DLEtBQUssR0FBR0QsT0FBTyxDQUFDLFNBQUQsQ0FBckI7QUFFQTs7O0FBQ0EsU0FBU0UsVUFBVCxDQUFxQkMsTUFBckIsRUFBNkI7QUFDM0JKLEVBQUFBLE1BQU0sQ0FBQ0ssRUFBUCxDQUFVRCxNQUFNLENBQUNFLElBQWpCLEVBQXVCLDBCQUF2QjtBQUNBTixFQUFBQSxNQUFNLENBQUNLLEVBQVAsQ0FBVUQsTUFBTSxDQUFDRyxNQUFqQixFQUF5Qiw0QkFBekI7QUFDQSxTQUFPO0FBQ0xDLElBQUFBLEtBQUssRUFBRSxJQURGO0FBRUxDLElBQUFBLElBQUksRUFBRSxLQUZEO0FBR0xDLElBQUFBLElBQUksRUFBRSxTQUhEO0FBSUxDLElBQUFBLElBQUksRUFBRUMsWUFBWSxDQUFDQyxNQUFNLENBQUNULE1BQU0sQ0FBQ0UsSUFBUixDQUFOLENBQW9CUSxJQUFwQixFQUFELENBSmI7QUFLTEMsSUFBQUEsSUFBSSxFQUFFO0FBQ0pSLE1BQUFBLE1BQU0sRUFBRUgsTUFBTSxDQUFDRyxNQURYO0FBRUpTLE1BQUFBLElBQUksRUFBRVosTUFBTSxDQUFDWSxJQUFQLElBQWUsSUFBSUMsSUFBSixHQUFXQyxXQUFYO0FBRmpCO0FBTEQsR0FBUDtBQVVEOztBQUVELFNBQVNOLFlBQVQsQ0FBdUJOLElBQXZCLEVBQTZCO0FBQzNCLFVBQVFBLElBQVI7QUFDRSxTQUFLLEtBQUw7QUFDQSxTQUFLLEtBQUw7QUFDRSxhQUFPSixLQUFLLENBQUMsd0JBQUQsQ0FBWjs7QUFDRixTQUFLLFlBQUw7QUFDQSxTQUFLLFNBQUw7QUFDQSxTQUFLLFlBQUw7QUFDQSxTQUFLLFNBQUw7QUFDRSxhQUFPQSxLQUFLLENBQUMsK0JBQUQsQ0FBWjs7QUFDRjtBQUNFLFlBQU0sSUFBSWlCLEtBQUosaUNBQW1DYixJQUFuQyxFQUFOO0FBVko7QUFZRDs7QUFFRGMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbEIsVUFBakIiLCJzb3VyY2VSb290IjoiLi4vLi4vbGliIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWZpbmUgYSBidWQgZm9yIExJQ0VOU0VcbiAqIEBtZW1iZXJvZiBtb2R1bGU6YXBlLXRtcGwvbGliXG4gKiBAZnVuY3Rpb24gbGljZW5zZUJ1ZFxuICogQHBhcmFtIHtvYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYXRpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gY29uZmlnLnR5cGUgLSBUeXBlIG9mIGxpY2Vuc2UuXG4gKiBAcGFyYW0ge251bWJlcn0gY29uZmlnLnllYXIgLSBDb3B5IHJpZ2h0IHllYXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gY29uZmlnLmhvbGRlciAtIExpY2Vuc2UgaG9sZGVyIG5hbWUuXG4gKiBAcmV0dXJucyB7b2JqZWN0fSAtIEJ1ZCBvYmplY3QuXG4gKi9cblxuJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpXG5jb25zdCBfdG1wbCA9IHJlcXVpcmUoJy4vX3RtcGwnKVxuXG4vKiogQGxlbmRzIGxpY2Vuc2VCdWQgKi9cbmZ1bmN0aW9uIGxpY2Vuc2VCdWQgKGNvbmZpZykge1xuICBhc3NlcnQub2soY29uZmlnLnR5cGUsICdjb25maWcudHlwZSBpcyByZXF1aXJlZC4nKVxuICBhc3NlcnQub2soY29uZmlnLmhvbGRlciwgJ2NvbmZpZy5ob2xkZXIgaXMgcmVxdWlyZWQuJylcbiAgcmV0dXJuIHtcbiAgICBmb3JjZTogdHJ1ZSxcbiAgICBtb2RlOiAnNDQ0JyxcbiAgICBwYXRoOiAnTElDRU5TRScsXG4gICAgdG1wbDogX3RtcGxGb3JUeXBlKFN0cmluZyhjb25maWcudHlwZSkudHJpbSgpKSxcbiAgICBkYXRhOiB7XG4gICAgICBob2xkZXI6IGNvbmZpZy5ob2xkZXIsXG4gICAgICB5ZWFyOiBjb25maWcueWVhciB8fCBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKClcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gX3RtcGxGb3JUeXBlICh0eXBlKSB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ21pdCc6XG4gICAgY2FzZSAnTUlUJzpcbiAgICAgIHJldHVybiBfdG1wbCgnaGJzL0xJQ0VOU0VfTUlULm1kLmhicycpXG4gICAgY2FzZSAnQXBhY2hlLTIuMCc6XG4gICAgY2FzZSAnQXBhY2hlMic6XG4gICAgY2FzZSAnQVBBQ0hFLTIuMCc6XG4gICAgY2FzZSAnQVBBQ0hFMic6XG4gICAgICByZXR1cm4gX3RtcGwoJ2hicy9MSUNFTlNFX0FwYWNoZS0yLjAubWQuaGJzJylcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGxpY2Vuc2UgdHlwZTogJHt0eXBlfWApXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsaWNlbnNlQnVkXG4iXX0=