Class: AwsRole::Assume

Inherits:
Clamp::Command
  • Object
show all
Defined in:
lib/aws/role/assume.rb

Instance Method Summary collapse

Instance Method Details

#executeObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/aws/role/assume.rb', line 20

def execute
  if ui? || url?
    match = role_arn.match(role_expression)
     = match["account"]
    role_name = match["role_name"]
    url = "https://signin.aws.amazon.com/switchrole?account=#{}&roleName=#{role_name}&displayName=#{role}"

    puts url if url?
    system("open '#{url}'") if ui?
  else
    creds = credentials
    if params.size > 0
      ENV['AWS_ACCESS_KEY_ID'] = creds.access_key_id
      ENV['AWS_SECRET_ACCESS_KEY'] = creds.secret_access_key
      ENV['AWS_SESSION_TOKEN'] = creds.session_token
      exec(params.join(" "))
    else
      %w{AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN}.each do |key|
        STDOUT.puts "unset #{key};"
      end
      STDOUT.puts "export AWS_ACCESS_KEY_ID=#{creds.access_key_id};"
      STDOUT.puts "export AWS_SECRET_ACCESS_KEY=#{creds.secret_access_key};"
      STDOUT.puts "export AWS_SESSION_TOKEN=$'#{creds.session_token}';"
    end
  end
end