UNPKG

cli-engine

Version:
57 lines (46 loc) 1.9 kB
'use strict'; 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')} `;