From 04099d7623df8b24b431513d44cde944f91047ab Mon Sep 17 00:00:00 2001 From: Tobias Salzmann <796084+Eun@users.noreply.github.com> Date: Fri, 8 Jul 2022 14:53:27 +0200 Subject: [PATCH] Create select-aws-profile.nu (#262) --- aws/select-aws-profile.nu | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 aws/select-aws-profile.nu diff --git a/aws/select-aws-profile.nu b/aws/select-aws-profile.nu new file mode 100644 index 00000000000..b520ee39085 --- /dev/null +++ b/aws/select-aws-profile.nu @@ -0,0 +1,38 @@ +# This alias lets you choose your aws environment variables with ease. +# +# Dependencies +# * fzf +# +# Installation +# 1. store in ~/.config/nushell/select-aws-profile.nu +# 2. add to your config.nu: `use ~/.config/nushell/select-aws-profile.nu *` +# +# Usage +# select-aws-profile + +export alias select-aws-profile = ( + hide AWS_REGION; + (do { + let creds = (open ($env.HOME + "/.aws/credentials") | from ini) + let selectedProfile = (for it in ($creds | transpose name creds) { echo $it.name } | str collect "\n" | fzf | str trim) + if $selectedProfile != "" { + let out = { + AWS_PROFILE: $selectedProfile, + AWS_ACCESS_KEY_ID: ($creds | get $selectedProfile | get "aws_access_key_id"), + AWS_SECRET_ACCESS_KEY: ($creds | get $selectedProfile | get "aws_secret_access_key"), + } + let region = ($creds | get $selectedProfile | get -i "region") + if $region != "" { + $out | insert "AWS_REGION" $region + } else { + $out + } + } + } | load-env); + { + AWS_PROFILE: $env.AWS_PROFILE, + AWS_ACCESS_KEY_ID: $env.AWS_ACCESS_KEY_ID, + AWS_SECRET_ACCESS_KEY: $env.AWS_SECRET_ACCESS_KEY, + AWS_REGION: $env.AWS_REGION + } +)