diff --git a/plugins/available/aws.plugin.bash b/plugins/available/aws.plugin.bash index 68fc4907..d434f876 100644 --- a/plugins/available/aws.plugin.bash +++ b/plugins/available/aws.plugin.bash @@ -4,18 +4,14 @@ about-plugin 'AWS helper functions' function awskeys { about 'helper function for AWS credentials file' group 'aws' - if [[ $# -eq 0 ]]; then - __awskeys_help - elif [[ $# -eq 1 ]] && [[ "$1" = "list" ]]; then + if [[ $# -eq 1 ]] && [[ "$1" = "list" ]]; then __awskeys_list "$2" - elif [[ $# -eq 2 ]]; then - if [[ "$1" = "show" ]]; then - __awskeys_show "$2" - elif [[ "$1" = "export" ]]; then - __awskeys_export "$2" - else - __awskeys_help - fi + elif [[ $# -eq 1 ]] && [[ "$1" = "remove" ]]; then + __awskeys_remove "$2" + elif [[ $# -eq 2 ]] && [[ "$1" = "show" ]]; then + __awskeys_show "$2" + elif [[ $# -eq 2 ]] && [[ "$1" = "export" ]]; then + __awskeys_export "$2" else __awskeys_help fi @@ -26,9 +22,10 @@ function __awskeys_help { echo -e "Helper to AWS credentials file.\n" echo -e "Commands:\n" echo " help Show this help message" - echo " list List available credentials profiles" - echo " show Show the keys associated to a credentials profile" - echo " export Export a credentials profile keys as environment variables" + echo " list List available AWS credentials profiles" + echo " show Show the AWS keys associated to a credentials profile" + echo " export Export an AWS credentials profile keys as environment variables" + echo " remove Remove the AWS keys variables from the environment" } function __awskeys_get { @@ -61,12 +58,20 @@ function __awskeys_show { } function __awskeys_export { - local p_keys="$(__awskeys_get $1)" + local p_keys=( $(__awskeys_get $1 | tr -d " ") ) if [[ -n "${p_keys}" ]]; then - eval $(echo "${p_keys}" | tr -d " " | sed -r -e "s/(.+=)(.+)/export \U\1\E\2/") + for p_key in ${p_keys[@]}; do + local key="${p_key%=*}" + export "${key^^}=${p_key#*=}" + done export AWS_DEFAULT_PROFILE="$1" else echo "Profile $1 not found in credentials file" fi } +function __awskeys_remove { + unset AWS_DEFAULT_PROFILE + unset AWS_ACCESS_KEY_ID + unset AWS_SECRET_ACCESS_KEY +}