From ca52f5ce2f766aa7f3b85a767f4af7f09fcbac2a Mon Sep 17 00:00:00 2001 From: Eduardo Bellido Bellido Date: Mon, 11 May 2015 00:01:36 +0200 Subject: [PATCH 1/6] Fixed export option to work on Mac --- plugins/available/aws.plugin.bash | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/available/aws.plugin.bash b/plugins/available/aws.plugin.bash index 68fc4907..b9873359 100644 --- a/plugins/available/aws.plugin.bash +++ b/plugins/available/aws.plugin.bash @@ -61,9 +61,12 @@ 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" From ab08ca7d16eae2cd360bb0a9b0db02226a7ebf3a Mon Sep 17 00:00:00 2001 From: Eduardo Bellido Bellido Date: Mon, 11 May 2015 00:02:07 +0200 Subject: [PATCH 2/6] Minor changes and updated help messages --- plugins/available/aws.plugin.bash | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/plugins/available/aws.plugin.bash b/plugins/available/aws.plugin.bash index b9873359..fa194077 100644 --- a/plugins/available/aws.plugin.bash +++ b/plugins/available/aws.plugin.bash @@ -4,18 +4,12 @@ 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 2 ]] && [[ "$1" = "show" ]]; then + __awskeys_show "$2" + elif [[ $# -eq 2 ]] && [[ "$1" = "export" ]]; then + __awskeys_export "$2" else __awskeys_help fi @@ -26,9 +20,9 @@ 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" } function __awskeys_get { From 9d7aa3b88204107559b1e8d718a6145e38b3adc7 Mon Sep 17 00:00:00 2001 From: Eduardo Bellido Bellido Date: Mon, 11 May 2015 00:02:27 +0200 Subject: [PATCH 3/6] Added remove option --- plugins/available/aws.plugin.bash | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/plugins/available/aws.plugin.bash b/plugins/available/aws.plugin.bash index fa194077..d434f876 100644 --- a/plugins/available/aws.plugin.bash +++ b/plugins/available/aws.plugin.bash @@ -6,6 +6,8 @@ function awskeys { group 'aws' if [[ $# -eq 1 ]] && [[ "$1" = "list" ]]; then __awskeys_list "$2" + elif [[ $# -eq 1 ]] && [[ "$1" = "remove" ]]; then + __awskeys_remove "$2" elif [[ $# -eq 2 ]] && [[ "$1" = "show" ]]; then __awskeys_show "$2" elif [[ $# -eq 2 ]] && [[ "$1" = "export" ]]; then @@ -23,6 +25,7 @@ function __awskeys_help { 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 { @@ -67,3 +70,8 @@ function __awskeys_export { fi } +function __awskeys_remove { + unset AWS_DEFAULT_PROFILE + unset AWS_ACCESS_KEY_ID + unset AWS_SECRET_ACCESS_KEY +} From 98f5be98dcb46c7d8137ec8d546d2780b355fed3 Mon Sep 17 00:00:00 2001 From: Eduardo Bellido Bellido Date: Wed, 13 May 2015 23:09:03 +0200 Subject: [PATCH 4/6] Now, really fixed (and tested) the export option in Mac --- plugins/available/aws.plugin.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/available/aws.plugin.bash b/plugins/available/aws.plugin.bash index d434f876..0c5deba0 100644 --- a/plugins/available/aws.plugin.bash +++ b/plugins/available/aws.plugin.bash @@ -62,7 +62,7 @@ function __awskeys_export { if [[ -n "${p_keys}" ]]; then for p_key in ${p_keys[@]}; do local key="${p_key%=*}" - export "${key^^}=${p_key#*=}" + export "$(echo ${key} | tr [:lower:] [:upper:])=${p_key#*=}" done export AWS_DEFAULT_PROFILE="$1" else From 172c6a0aea2240a25eb39c84da0805e5736282d8 Mon Sep 17 00:00:00 2001 From: Eduardo Bellido Bellido Date: Wed, 13 May 2015 23:11:04 +0200 Subject: [PATCH 5/6] Renamed remove option to unset --- plugins/available/aws.plugin.bash | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/plugins/available/aws.plugin.bash b/plugins/available/aws.plugin.bash index 0c5deba0..4f4887d2 100644 --- a/plugins/available/aws.plugin.bash +++ b/plugins/available/aws.plugin.bash @@ -6,8 +6,8 @@ function awskeys { group 'aws' if [[ $# -eq 1 ]] && [[ "$1" = "list" ]]; then __awskeys_list "$2" - elif [[ $# -eq 1 ]] && [[ "$1" = "remove" ]]; then - __awskeys_remove "$2" + elif [[ $# -eq 1 ]] && [[ "$1" = "unset" ]]; then + __awskeys_unset "$2" elif [[ $# -eq 2 ]] && [[ "$1" = "show" ]]; then __awskeys_show "$2" elif [[ $# -eq 2 ]] && [[ "$1" = "export" ]]; then @@ -25,7 +25,7 @@ function __awskeys_help { 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" + echo " unset Unset the AWS keys variables from the environment" } function __awskeys_get { @@ -70,8 +70,6 @@ function __awskeys_export { fi } -function __awskeys_remove { - unset AWS_DEFAULT_PROFILE - unset AWS_ACCESS_KEY_ID - unset AWS_SECRET_ACCESS_KEY +function __awskeys_unset { + unset AWS_DEFAULT_PROFILE AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY } From 1172973d89d449c69f081370dc332c81e921e9a8 Mon Sep 17 00:00:00 2001 From: Eduardo Bellido Bellido Date: Wed, 20 May 2015 20:49:36 +0200 Subject: [PATCH 6/6] Fixed regex in __awskeys_list function --- plugins/available/aws.plugin.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/available/aws.plugin.bash b/plugins/available/aws.plugin.bash index 4f4887d2..c8920e38 100644 --- a/plugins/available/aws.plugin.bash +++ b/plugins/available/aws.plugin.bash @@ -36,7 +36,7 @@ function __awskeys_get { } function __awskeys_list { - local credentials_list="$(egrep '^\[ *[a-zA-Z0-0_-]+ *\]$' ~/.aws/credentials)" + local credentials_list="$(egrep '^\[ *[a-zA-Z0-9_-]+ *\]$' ~/.aws/credentials)" if [[ -n $"{credentials_list}" ]]; then echo -e "Available credentials profiles:\n" for cred in ${credentials_list}; do