class Renuo::Cli::Commands::Debug
Constants
- Cache
- Deploio
- Heroku
Public Instance Methods
Source
# File lib/renuo/cli/commands/debug.rb, line 32 def run(args, options) # rubocop:todo Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity query = args[0] abort(">> Please provide an app name or domain.") if query.blank? cloud_unspecified = !options.heroku && !options.deploio should_scan_heroku = options.heroku || cloud_unspecified should_scan_deploio = options.deploio || cloud_unspecified choose do |menu| # rubocop:todo Metrics/BlockLength deploio_cache_info = "Deploio: #{Cache.stored_at("deploio_apps") || "never"}" heroku_cache_info = "Heroku: #{Cache.stored_at("heroku_apps") || "never"}" menu.choice "Update caches (#{deploio_cache_info}, #{heroku_cache_info})" do if should_scan_deploio say "Updating Deploio cache" Cache.store("deploio_apps", Deploio.fetch_apps) end if should_scan_heroku say "Updating Heroku cache..." Cache.store("heroku_apps", Heroku.fetch_apps) end say "Caches updated" end open_cmds = [] if should_scan_deploio && Cache.stored_at("deploio_apps") select_deploio_targets(query).each do |app| exec_cmd = "nctl exec app #{app[:name]} bash --project #{app[:namespace]}" menu.choice(exec_cmd) { exec exec_cmd.squish } log_cmd = "nctl logs app #{app[:name]} -f --project #{app[:namespace]}" menu.choice(log_cmd) { exec log_cmd.squish } app[:hosts].each do |host| open_cmds << "open https://#{host}" end end end if should_scan_heroku && Cache.stored_at("heroku_apps") select_heroku_targets(query).each do |app| exec_cmd = "heroku run bash --app #{app[:name]}" menu.choice(exec_cmd) { exec exec_cmd.squish } log_cmd = "heroku logs -t --app #{app[:name]}" menu.choice(log_cmd) { exec log_cmd.squish } app[:domains].each do |host| open_cmds << "open https://#{host}" end end end open_cmds.uniq.each do |cmd| menu.choice(cmd) { exec cmd.squish } end end end
rubocop:todo Metrics/PerceivedComplexity rubocop:todo Metrics/MethodLength rubocop:todo Metrics/AbcSize
Private Instance Methods
Source
# File lib/renuo/cli/commands/debug.rb, line 97 def select_deploio_targets(query) Cache.restore("deploio_apps").select do |app| app[:name].include?(query) || app[:namespace].include?(query) || app[:hosts].any? { |host| host.include?(query) } end end
rubocop:enable Metrics/AbcSize rubocop:enable Metrics/MethodLength rubocop:enable Metrics/PerceivedComplexity
Source
# File lib/renuo/cli/commands/debug.rb, line 103 def select_heroku_targets(query) Cache.restore("heroku_apps").select do |app| app[:name].include?(query) || app[:domains].any? { |domain| domain.include?(query) } end end