Skip to content

Commit

Permalink
fix(aws): Fix select-aws-profile script functionality and style
Browse files Browse the repository at this point in the history
- Rename main function to 'main' and add --env flag for environment modification
- Improve profile selection logic using reduce and string interpolation
- Fix region handling to properly check for null values
  • Loading branch information
reinno committed Sep 10, 2024
1 parent f74b2aa commit c535385
Showing 1 changed file with 31 additions and 31 deletions.
62 changes: 31 additions & 31 deletions modules/aws/select-aws-profile.nu
Original file line number Diff line number Diff line change
@@ -1,45 +1,45 @@
# This alias lets you choose your aws environment variables with ease.
#
# Dependencies
# * fzf
# 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 *`
# 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 def select-aws-profile [] {
hide AWS_REGION;
# Usage:
# select-aws-profile
export def --env main [] {
hide AWS_REGION

(do {
let creds = (open ($env.HOME + "/.aws/credentials") | from toml)
let selectedProfile = (for it in ($creds | transpose name creds) {
echo $it.name
})

selectedProfile = selectedProfile | str join "\n" | fzf | str trim
do {
let creds = open ($env.HOME + "/.aws/credentials") | from toml
let selected_profile = $creds
| transpose name creds
| get name
| str join "\n"
| fzf

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
}
if $selected_profile != "" {
let out = {
AWS_PROFILE: $selected_profile,
AWS_ACCESS_KEY_ID: ($creds | get $selected_profile | get "aws_access_key_id"),
AWS_SECRET_ACCESS_KEY: ($creds | get $selected_profile | get "aws_secret_access_key"),
}
} | load-env);

let region = ($creds | get $selected_profile | get -i "region")
if $region != null {
$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
}
}
}

0 comments on commit c535385

Please sign in to comment.