Sha256: 04ca70bdb9b1be1798e090db973aeb61cf9d5d562391db7853fb1d84ce038334

Contents?: true

Size: 1.27 KB

Versions: 5

Compression:

Stored size: 1.27 KB

Contents

# frozen_string_literal: true

require_relative "../base"

module Neetob
  class CLI
    module Heroku
      class Execute < Base
        attr_accessor :apps, :command_to_execute, :should_run_in_rails_console, :sandbox

        def initialize(apps, command_to_execute, should_run_in_rails_console = false, sandbox = false)
          super()
          @apps = apps
          @command_to_execute = command_to_execute
          @should_run_in_rails_console = should_run_in_rails_console
          @sandbox = sandbox
        end

        def run
          matching_apps = find_all_matching_apps(apps, :heroku, sandbox)
          rails_runner_command = "rails runner '#{command_to_execute}'"
          heroku_command = should_run_in_rails_console ? rails_runner_command : command_to_execute
          matching_apps.each do |app|
            ui.info("\n  Working on #{app}\n")
            output = `heroku run "#{heroku_command}" -a #{app}`
            unless $?.success?
              ui.error("There is a problem in accessing the app with name \"#{app}\" in your account.")
              ui.error("Please check the specified app name and ensure you're authorized to view that app.")
              next
            end
            ui.success(output)
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
neetob-0.2.2 lib/neetob/cli/heroku/execute.rb
neetob-0.2.1 lib/neetob/cli/heroku/execute.rb
neetob-0.2.0 lib/neetob/cli/heroku/execute.rb
neetob-0.1.5 lib/neetob/cli/heroku/execute.rb
neetob-0.1.4 lib/neetob/cli/heroku/execute.rb