cli-engine
Version:
Generic CLI Framework
57 lines (46 loc) • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _cliEngineCommand = require('cli-engine-command');
var _cliEngineCommand2 = _interopRequireDefault(_cliEngineCommand);
var _util = require('../../util');
var _plugins = require('../../plugins');
var _plugins2 = _interopRequireDefault(_plugins);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
let examplePlugins = {
'heroku-ci': { version: '1.8.0' },
'heroku-cli-status': { version: '3.0.10', type: 'link' },
'heroku-fork': { version: '4.1.22' }
};
let cli = 'heroku';
if (global.config) {
cli = global.config.bin;
let pjson = global.config.pjson['cli-engine'];
if (pjson['help'] && pjson['help']['plugins']) {
examplePlugins = pjson['help']['plugins'];
}
}
const examplePluginsHelp = Object.entries(examplePlugins).map(([name, p]) => ` ${name} ${p.version}`);
class _class extends _cliEngineCommand2.default {
async run() {
let plugins = await new _plugins2.default(this.config).list();
plugins = plugins.filter(p => p.type !== 'builtin');
plugins.sort((0, _util.compare)('name'));
if (!this.flags.core) plugins = plugins.filter(p => p.type !== 'core');
if (!plugins.length) this.out.warn('no plugins installed');
for (let plugin of plugins) {
let output = `${plugin.name} ${this.out.color.dim(plugin.version)}`;
if (plugin.type !== 'user') output += this.out.color.dim(` (${plugin.type})`);else if (plugin.tag !== 'latest') output += this.out.color.dim(` (${String(plugin.tag)})`);
this.out.log(output);
}
}
}
exports.default = _class;
_class.topic = 'plugins';
_class.flags = { core: _cliEngineCommand.flags.boolean({ description: 'show core plugins' }) };
_class.description = 'list installed plugins';
_class.help = `Example:
$ ${cli} plugins
${examplePluginsHelp.join('\n')}
`;