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)
account = match["account"]
role_name = match["role_name"]
url = "https://signin.aws.amazon.com/switchrole?account=#{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
|