Sha256: 2104d47d3261f0c2c52618d3ccf0f28783a078ccd184cc8ef9fe43fe1f29900d

Contents?: true

Size: 1.71 KB

Versions: 25

Compression:

Stored size: 1.71 KB

Contents

# frozen_string_literal: true

require_relative "base"

module Neetob
  class CLI
    module Heroku
      module ConfigVars
        class List < Base
          attr_accessor :apps, :sandbox, :keys, :required_config_vars_file_path

          def initialize(apps, keys = [], required_config_vars_file_path = "", sandbox = false)
            super()
            @apps = apps
            @sandbox = sandbox
            @keys = keys
            @required_config_vars_file_path = required_config_vars_file_path
          end

          def run
            matching_apps = find_all_matching_apps(apps, :heroku, sandbox)
            matching_apps.each do |app|
              ui.info("\n  Config of #{app}\n")
              config = `heroku config -a #{app} --json`
              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
              table = Terminal::Table.new headings: table_columns, rows: filter_config(config)
              ui.success(table)
            end
          end

          private

            def table_columns
              ["Key", "Value"]
            end

            def filter_config(config)
              parsed_config = JSON.parse(config)
              if keys.nil? && required_config_vars_file_path.nil?
                return parsed_config
              end

              required_config = keys || read_json_file(required_config_vars_file_path)
              required_config.map do |key|
                [key, parsed_config[key]]
              end
            end
        end
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 2 rubygems

Version Path
neetob-ud-0.2.9 lib/neetob/cli/heroku/config_vars/list.rb
neetob-ud-0.2.5 lib/neetob/cli/heroku/config_vars/list.rb
neetob-0.1.2 lib/neetob/cli/heroku/config_vars/list.rb
neetob-0.1.1 lib/neetob/cli/heroku/config_vars/list.rb
neetob-0.1.0 lib/neetob/cli/heroku/config_vars/list.rb