Diff
1diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh
2index e1566b1133c1063d06d2447372ff9ca4f7a5e7f4..2d095635b54b407f7af7c558d06f8e92043f8e85 100644
3--- a/plugins/aws/aws.plugin.zsh
4+++ b/plugins/aws/aws.plugin.zsh
5@@ -62,47 +62,47 @@ function acp() {
6 read -r sess_duration
7 fi
8 mfa_opt=(--serial-number "$mfa_serial" --token-code "$mfa_token" --duration-seconds "${sess_duration:-3600}")
9+ fi
10
11- # Now see whether we need to just MFA for the current role, or assume a different one
12- local role_arn="$(aws configure get role_arn --profile $profile)"
13- local sess_name="$(aws configure get role_session_name --profile $profile)"
14-
15- if [[ -n "$role_arn" ]]; then
16- # Means we need to assume a specified role
17- aws_command=(aws sts assume-role --role-arn "$role_arn" "${mfa_opt[@]}")
18+ # Now see whether we need to just MFA for the current role, or assume a different one
19+ local role_arn="$(aws configure get role_arn --profile $profile)"
20+ local sess_name="$(aws configure get role_session_name --profile $profile)"
21
22- # Check whether external_id is configured to use while assuming the role
23- local external_id="$(aws configure get external_id --profile $profile)"
24- if [[ -n "$external_id" ]]; then
25- aws_command+=(--external-id "$external_id")
26- fi
27+ if [[ -n "$role_arn" ]]; then
28+ # Means we need to assume a specified role
29+ aws_command=(aws sts assume-role --role-arn "$role_arn" "${mfa_opt[@]}")
30
31- # Get source profile to use to assume role
32- local source_profile="$(aws configure get source_profile --profile $profile)"
33- if [[ -z "$sess_name" ]]; then
34- sess_name="${source_profile:-profile}"
35- fi
36- aws_command+=(--profile="${source_profile:-profile}" --role-session-name "${sess_name}")
37+ # Check whether external_id is configured to use while assuming the role
38+ local external_id="$(aws configure get external_id --profile $profile)"
39+ if [[ -n "$external_id" ]]; then
40+ aws_command+=(--external-id "$external_id")
41+ fi
42
43- echo "Assuming role $role_arn using profile ${source_profile:-profile}"
44- else
45- # Means we only need to do MFA
46- aws_command=(aws sts get-session-token --profile="$profile" "${mfa_opt[@]}")
47- echo "Obtaining session token for profile $profile"
48+ # Get source profile to use to assume role
49+ local source_profile="$(aws configure get source_profile --profile $profile)"
50+ if [[ -z "$sess_name" ]]; then
51+ sess_name="${source_profile:-profile}"
52 fi
53+ aws_command+=(--profile="${source_profile:-profile}" --role-session-name "${sess_name}")
54
55- # Format output of aws command for easier processing
56- aws_command+=(--query '[Credentials.AccessKeyId,Credentials.SecretAccessKey,Credentials.SessionToken]' --output text)
57+ echo "Assuming role $role_arn using profile ${source_profile:-profile}"
58+ else
59+ # Means we only need to do MFA
60+ aws_command=(aws sts get-session-token --profile="$profile" "${mfa_opt[@]}")
61+ echo "Obtaining session token for profile $profile"
62+ fi
63
64- # Run the aws command to obtain credentials
65- local -a credentials
66- credentials=(${(ps:\t:)"$(${aws_command[@]})"})
67+ # Format output of aws command for easier processing
68+ aws_command+=(--query '[Credentials.AccessKeyId,Credentials.SecretAccessKey,Credentials.SessionToken]' --output text)
69
70- if [[ -n "$credentials" ]]; then
71- aws_access_key_id="${credentials[1]}"
72- aws_secret_access_key="${credentials[2]}"
73- aws_session_token="${credentials[3]}"
74- fi
75+ # Run the aws command to obtain credentials
76+ local -a credentials
77+ credentials=(${(ps:\t:)"$(${aws_command[@]})"})
78+
79+ if [[ -n "$credentials" ]]; then
80+ aws_access_key_id="${credentials[1]}"
81+ aws_secret_access_key="${credentials[2]}"
82+ aws_session_token="${credentials[3]}"
83 fi
84
85 # Switch to AWS profile