aws: check availability of aws profiles (#7839)

This commit is contained in:
programmer04 2019-05-26 12:31:37 +02:00 committed by Marc Cornellà
parent 5d875d6812
commit 1343ab67ed

View file

@ -1,29 +1,35 @@
# AWS profile selection agp() {
function agp {
echo $AWS_PROFILE echo $AWS_PROFILE
} }
function asp { # AWS profile selection
asp() {
if [[ -z "$1" ]]; then if [[ -z "$1" ]]; then
unset AWS_DEFAULT_PROFILE AWS_PROFILE AWS_EB_PROFILE unset AWS_DEFAULT_PROFILE AWS_PROFILE AWS_EB_PROFILE
echo AWS profile cleared. echo AWS profile cleared.
return return
fi fi
local available_profiles=($(aws_profiles))
if [[ -z "${available_profiles[(r)$1]}" ]]; then
echo "${fg[red]}Profile '$1' not found in '${AWS_CONFIG_FILE:-$HOME/.aws/config}'" >&2
echo "Available profiles: ${(j:, :)available_profiles:-no profiles found}${reset_color}" >&2
return 1
fi
export AWS_DEFAULT_PROFILE=$1 export AWS_DEFAULT_PROFILE=$1
export AWS_PROFILE=$1 export AWS_PROFILE=$1
export AWS_EB_PROFILE=$1 export AWS_EB_PROFILE=$1
} }
function aws_change_access_key { aws_change_access_key() {
if [[ -z "$1" ]] then if [[ -z "$1" ]]; then
echo "usage: $0 <profile>" echo "usage: $0 <profile>"
return 1 return 1
fi fi
echo Insert the credentials when asked. echo Insert the credentials when asked.
asp "$1" asp "$1" || return 1
aws iam create-access-key aws iam create-access-key
aws configure --profile "$1" aws configure --profile "$1"
@ -32,16 +38,18 @@ function aws_change_access_key {
aws iam list-access-keys aws iam list-access-keys
} }
function aws_profiles { aws_profiles() {
[[ -r "${AWS_CONFIG_FILE:-$HOME/.aws/config}" ]] || return 1 [[ -r "${AWS_CONFIG_FILE:-$HOME/.aws/config}" ]] || return 1
reply=($(grep '\[profile' "${AWS_CONFIG_FILE:-$HOME/.aws/config}"|sed -e 's/.*profile \([a-zA-Z0-9_\.-]*\).*/\1/')) grep '\[profile' "${AWS_CONFIG_FILE:-$HOME/.aws/config}"|sed -e 's/.*profile \([a-zA-Z0-9_\.-]*\).*/\1/'
} }
compctl -K aws_profiles asp aws_change_access_key
_aws_profiles() {
reply=($(aws_profiles))
}
compctl -K _aws_profiles asp aws_change_access_key
# AWS prompt # AWS prompt
aws_prompt_info() {
function aws_prompt_info() {
[[ -z $AWS_PROFILE ]] && return [[ -z $AWS_PROFILE ]] && return
echo "${ZSH_THEME_AWS_PREFIX:=<aws:}${AWS_PROFILE}${ZSH_THEME_AWS_SUFFIX:=>}" echo "${ZSH_THEME_AWS_PREFIX:=<aws:}${AWS_PROFILE}${ZSH_THEME_AWS_SUFFIX:=>}"
} }