yeoman-generator
Version:
Rails-inspired generator system that provides scaffolding for your apps
33 lines (26 loc) • 790 B
JavaScript
;
var path = require('path');
/**
* Receives a `namespace`, and an Hash of `options` to invoke a given
* generator. The usual list of arguments can be set with `options.args`
* (ex. nopt's argv.remain array)
*
* @param {String} namespace
* @param {Object} options
* @param {Function} cb
*
* @mixin
* @alias actions/invoke
*/
module.exports = function invoke(namespace, options, cb) {
cb = cb || function () {};
options = options || {};
options.args = options.args || [];
var generator = this.env.create(namespace, options);
this.log.emit('up');
this.log.invoke(namespace);
this.log.emit('up');
generator.on('end', this.log.emit.bind(this.log, 'down'));
generator.on('end', this.log.emit.bind(this.log, 'down'));
return generator.run(cb);
};