diff --git a/.config/starship.toml b/.config/starship.toml index b64837e..eeae74c 100644 --- a/.config/starship.toml +++ b/.config/starship.toml @@ -1,10 +1,29 @@ -prompt_order=["directory","git_branch","git_commit","git_state","git_status","package","golang","nodejs","terraform","memory_usage","aws","kubernetes","cmd_duration","custom","line_break","jobs","battery","time","character"] +format = """\ + $directory\ + $git_branch\ + $git_commit\ + $git_state\ + $git_status\ + $package\ + $golang\ + $nodejs\ + $terraform\ + $memory_usage\ + $aws\ + $kubernetes\ + $cmd_duration\ + $custom\ + $line_break\ + $jobs\ + $battery\ + $time\ + $character\ + """ [character] -symbol = "✨ " -error_symbol = "✗ " +success_symbol = "[✨](yellow)" +error_symbol = "[✗](red)" use_symbol_for_status = true -style_success = "yellow" [aws] symbol = " " diff --git a/.dotfiles/aliases b/.dotfiles/aliases index 4cc4b55..db0b544 100644 --- a/.dotfiles/aliases +++ b/.dotfiles/aliases @@ -14,5 +14,4 @@ lt() { fi ls -l --tree -L $DEPTH -I ".git|cache|log|logs|node_modules|vendor" $@ } - alias aws='docker run --rm -ti -v ~/.aws:/root/.aws -v $(pwd):/aws -e AWS_PROFILE -e AWS_DEFAULT_REGION -e AWS_REGION -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY amazon/aws-cli' diff --git a/.dotfiles/aws b/.dotfiles/aws new file mode 100644 index 0000000..3417b6d --- /dev/null +++ b/.dotfiles/aws @@ -0,0 +1,24 @@ +alias aws='docker pull -q amazon/aws-cli:latest 1> /dev/null && docker run --rm -i -v ~/.aws:/root/.aws -v $(pwd):/aws -e NO_COLOR=true -e AWS_PROFILE -e AWS_DEFAULT_REGION -e AWS_REGION -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e AWS_SESSION_TOKEN amazon/aws-cli' + +assume-role() { + ROLE=$1 + + if [[ -z "$ROLE" ]]; then + export AWS_ACCESS_KEY_ID= + export AWS_SECRET_ACCESS_KEY= + export AWS_SESSION_TOKEN= + else + OUTPUT=$(aws sts assume-role --role-arn $ROLE --role-session-name assumed-role-session --query Credentials --output json) + + export AWS_ACCESS_KEY_ID=$(echo $OUTPUT | jq -r .AccessKeyId) + export AWS_SECRET_ACCESS_KEY=$(echo $OUTPUT | jq -r .SecretAccessKey) + export AWS_SESSION_TOKEN=$(echo $OUTPUT | jq -r .SessionToken) + fi + + aws sts get-caller-identity +} + +aws-decode-message() { + ENCODED=$1 + aws sts decode-authorization-message --query DecodedMessage --output text --encoded-message $ENCODED | jq -r '.context.action, .context.resource' +} diff --git a/Makefile b/Makefile index 01806ce..626efd3 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ pre-reqs: ## Install all required binaries. brew list --cask homebrew/cask-fonts/font-open-dyslexic-nerd-font > /dev/null || brew install homebrew/cask-fonts/font-open-dyslexic-nerd-font; \ which fzf > /dev/null || brew install fzf; \ which bat > /dev/null || brew install bat; \ - which curlie > /dev/null | brew install rs/tap/curlie; \ + which curlie > /dev/null || brew install rs/tap/curlie; \ which exa > /dev/null || brew install exa; \ which kubectl > /dev/null || brew install kubectl; \ which tkn > /dev/null || brew install tektoncd/tools/tektoncd-cli; \