Sha256: a3e3475db21cc589d25b563c97d9441167f589698ab772e74edadaf79610db6c

Contents?: true

Size: 799 Bytes

Versions: 1

Compression:

Stored size: 799 Bytes

Contents

require 'aws-sdk'
require 'awssume/version'
require 'awssume/command_decorator'
require 'awssume/configuration'
require 'awssume/adapter/aws_client'

module Awssume
  def self.run
    config  = Awssume::Configuration.new
    adapter = Awssume::Adapter::AwsClient.new(
      region:            config.region,
      role_arn:          config.role_arn,
      role_session_name: config.role_session_name,
      external_id:       config.external_id
    )
    aws_env = {
      'AWS_REGION'         => config.region,
      'AWS_DEFAULT_REGION' => config.region
    }
    creds_hash = adapter.assume
    fmt_cmd    = Awssume::CommandDecorator.format_cmd(ARGV[0..-1], creds_hash)

    handle_exit { system(aws_env, fmt_cmd) }
  end

  def self.handle_exit(&block)
    block.call ? true : exit(1)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
awssume-0.3.0 lib/awssume.rb