UNPKG

cli-engine

Version:
79 lines (64 loc) 2.3 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _cliEngineCommand = require('cli-engine-command'); var _cliEngineCommand2 = _interopRequireDefault(_cliEngineCommand); var _plugins = require('../plugins'); var _plugins2 = _interopRequireDefault(_plugins); var _fsExtra = require('fs-extra'); var _fsExtra2 = _interopRequireDefault(_fsExtra); var _path = require('path'); var _path2 = _interopRequireDefault(_path); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const debug = require('debug')('cli:commands'); class Commands extends _cliEngineCommand2.default { async run() { this.out.warn('heroku-cli: This CLI is deprecated. Please reinstall from https://cli.heroku.com'); await this.addV6Hack(); let plugins = new _plugins2.default(this.config); await plugins.load(); let topics = plugins.topics.filter(t => !t.hidden); let commands = plugins.commands.map(c => ({ command: c.command, topic: c.topic, usage: c.usage, description: c.description, help: c.help, fullHelp: c.help, hidden: c.hidden })); this.out.styledJSON({ topics, commands }); } async addV6Hack() { try { const hack = `### begin v6 v.1 begin pluginsDir = File.join(Dir.home, ".heroku", "plugins") bin = File.join(Dir.home, ".local", "share", "heroku", "client", "bin", "heroku") if File.exists?(bin) && (!Dir.exists?(pluginsDir) || Dir.entries(pluginsDir).count <= 2) puts "Running: #{bin}" if ENV['HEROKU_DEBUG'] || ENV['DEBUG'] system bin, *ARGV status = $?.exitstatus exit status end rescue => e puts e end ### end v6 v.1 `; if (this.config.windows) return; let cliRB = _path2.default.join(this.config.home, '.heroku', 'client', 'lib', 'heroku', 'cli.rb'); if (!(await _fsExtra2.default.exists(cliRB))) return; let contents = await _fsExtra2.default.readFile(cliRB, 'utf8'); if (contents.startsWith('### begin v6 v.1')) return; await _fsExtra2.default.outputFile(cliRB, hack + contents); } catch (err) { debug(err); } } } exports.default = Commands; Commands.topic = 'commands'; Commands.hidden = true; Commands.flags = { json: _cliEngineCommand.flags.boolean() };