Sha256: db0de00e5f805b23937732b39cf044d5c0bb22ac534c3fd01e7e303b7a1fc241

Contents?: true

Size: 1.18 KB

Versions: 6

Compression:

Stored size: 1.18 KB

Contents

module Lono::Cfn
  class Output < Base
    def run
      stack = find_stack(@stack)
      unless stack
        logger.info "ERROR: stack #{@stack} not found".color(:red)
        quit 1
      end

      outputs = stack.outputs.map(&:to_h)
      logger.info <<~EOL
        #{"Outputs:".color(:green)}

      EOL
      if outputs.empty?
        logger.stdout outputs.inspect
      else
        logger.stdout pretty(outputs)
      end
    end

  private
    # Input:
    #
    #      [{
    #        output_key: "SecurityGroup",
    #        output_value: "demo-dev-SecurityGroup-142DZFIEG3G9L"
    #      }]
    #
    # Output:
    #
    #      { "SecurityGroup" => "demo-dev-SecurityGroup-142DZFIEG3G9L" }
    #
    def pretty(outputs)
      outs = outputs.inject({}) do |result,h|
        result.merge!(h[:output_key] => h[:output_value])
      end
      default = {format: "equal"}
      options = default.merge(@options.symbolize_keys)
      presenter = CliFormat::Presenter.new(options)
      presenter.header = ["Key", "Value"] unless presenter.format == "equal"
      outs.keys.sort.each do |k|
        row = [k,outs[k]]
        presenter.rows << row
      end
      presenter.show
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
lono-8.0.0.pre.rc6 lib/lono/cfn/output.rb
lono-8.0.0.pre.rc5 lib/lono/cfn/output.rb
lono-8.0.0.pre.rc4 lib/lono/cfn/output.rb
lono-8.0.0.pre.rc3 lib/lono/cfn/output.rb
lono-8.0.0.pre.rc2 lib/lono/cfn/output.rb
lono-8.0.0.pre.rc1 lib/lono/cfn/output.rb