|
|
|
|
@ -6,10 +6,26 @@ function agr() { |
|
|
|
|
echo $AWS_REGION |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# Update state file if enabled |
|
|
|
|
function _aws_update_state() { |
|
|
|
|
if [[ "$AWS_PROFILE_STATE_ENABLED" == true ]]; then |
|
|
|
|
test -d $(dirname ${AWS_STATE_FILE}) || exit 1 |
|
|
|
|
echo "${AWS_PROFILE} ${AWS_REGION}" > "${AWS_STATE_FILE}" |
|
|
|
|
fi |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function _aws_clear_state() { |
|
|
|
|
if [[ "$AWS_PROFILE_STATE_ENABLED" == true ]]; then |
|
|
|
|
test -d $(dirname ${AWS_STATE_FILE}) || exit 1 |
|
|
|
|
echo -n > "${AWS_STATE_FILE}" |
|
|
|
|
fi |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# AWS profile selection |
|
|
|
|
function asp() { |
|
|
|
|
if [[ -z "$1" ]]; then |
|
|
|
|
unset AWS_DEFAULT_PROFILE AWS_PROFILE AWS_EB_PROFILE AWS_PROFILE_REGION |
|
|
|
|
_aws_clear_state |
|
|
|
|
echo AWS profile cleared. |
|
|
|
|
return |
|
|
|
|
fi |
|
|
|
|
@ -28,6 +44,8 @@ function asp() { |
|
|
|
|
|
|
|
|
|
export AWS_PROFILE_REGION=$(aws configure get region) |
|
|
|
|
|
|
|
|
|
_aws_update_state |
|
|
|
|
|
|
|
|
|
if [[ "$2" == "login" ]]; then |
|
|
|
|
if [[ -n "$3" ]]; then |
|
|
|
|
aws sso login --sso-session $3 |
|
|
|
|
@ -43,6 +61,7 @@ function asp() { |
|
|
|
|
function asr() { |
|
|
|
|
if [[ -z "$1" ]]; then |
|
|
|
|
unset AWS_DEFAULT_REGION AWS_REGION |
|
|
|
|
_aws_update_state |
|
|
|
|
echo AWS region cleared. |
|
|
|
|
return |
|
|
|
|
fi |
|
|
|
|
@ -56,6 +75,7 @@ function asr() { |
|
|
|
|
|
|
|
|
|
export AWS_REGION=$1 |
|
|
|
|
export AWS_DEFAULT_REGION=$1 |
|
|
|
|
_aws_update_state |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# AWS profile switch |
|
|
|
|
@ -255,6 +275,22 @@ if [[ "$SHOW_AWS_PROMPT" != false && "$RPROMPT" != *'$(aws_prompt_info)'* ]]; th |
|
|
|
|
RPROMPT='$(aws_prompt_info)'"$RPROMPT" |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if [[ "$AWS_PROFILE_STATE_ENABLED" == true ]]; then |
|
|
|
|
AWS_STATE_FILE="${AWS_STATE_FILE:-/tmp/.aws_current_profile}" |
|
|
|
|
test -s "${AWS_STATE_FILE}" || return |
|
|
|
|
|
|
|
|
|
aws_state=($(cat $AWS_STATE_FILE)) |
|
|
|
|
|
|
|
|
|
export AWS_DEFAULT_PROFILE="${aws_state[1]}" |
|
|
|
|
export AWS_PROFILE="$AWS_DEFAULT_PROFILE" |
|
|
|
|
export AWS_EB_PROFILE="$AWS_DEFAULT_PROFILE" |
|
|
|
|
|
|
|
|
|
test -z "${aws_state[2]}" && AWS_REGION=$(aws configure get region) |
|
|
|
|
|
|
|
|
|
export AWS_REGION=${AWS_REGION:-$aws_state[2]} |
|
|
|
|
export AWS_DEFAULT_REGION="$AWS_REGION" |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# Load awscli completions |
|
|
|
|
|
|
|
|
|
# AWS CLI v2 comes with its own autocompletion. Check if that is there, otherwise fall back |
|
|
|
|
|