Commit 532a784b authored by David Kane's avatar David Kane Committed by Marc Cornellà
Browse files

aws: refactor AWS plugin (#7615)



* Update the AWS plugin to support disabling RPROMT display:
  Use a $SHOW_AWS_PROMPT option.

* Refactoring aws plugin:
  Exposing customizable aws_prompt_info function to be used in themes.

* Set aws prompt prefix and suffix to original values and fix README
Co-authored-by: default avatar"Vassilis S. Moustakas" <vsmoustakas@gmail.com>
parent 5ff21efa
# aws
This plugin provides completion support for [awscli](https://docs.aws.amazon.com/cli/latest/reference/index.html)
and a few utilities to manage AWS profiles: a function to change profiles with autocompletion support
and a function to get the current AWS profile. The current AWS profile is also displayed in `RPROMPT`.
and a few utilities to manage AWS profiles and display them in the prompt.
To use it, add `aws` to the plugins array in your zshrc file.
......@@ -12,9 +11,23 @@ plugins=(... aws)
## Plugin commands
* `asp <profile>`: Sets `AWS_PROFILE` and `AWS_DEFAULT_PROFILE` (legacy) to `<profile>`.
It also adds it to your RPROMPT.
* `asp [<profile>]`: Sets `$AWS_PROFILE` and `$AWS_DEFAULT_PROFILE` (legacy) to `<profile>`.
Run `asp` without arguments to clear the profile.
* `agp`: Gets the current value of `AWS_PROFILE`.
* `agp`: Gets the current value of `$AWS_PROFILE`.
* `aws_profiles`: Lists the available profiles in the file referenced in `AWS_CONFIG_FILE` (default: ~/.aws/config). Used to provide completion for the `asp` function.
* `aws_profiles`: Lists the available profiles in the `$AWS_CONFIG_FILE` (default: `~/.aws/config`).
Used to provide completion for the `asp` function.
## Plugin options
* Set `SHOW_AWS_PROMPT=false` in your zshrc file if you want to prevent the plugin from modifying your RPROMPT.
## Theme
The plugin creates an `aws_prompt_info` function that you can use in your theme, which displays
the current `$AWS_PROFILE`. It uses two variables to control how that is shown:
- ZSH_THEME_AWS_PREFIX: sets the prefix of the AWS_PROFILE. Defaults to `<aws:`.
- ZSH_THEME_AWS_SUFFIX: sets the suffix of the AWS_PROFILE. Defaults to `>`.
# AWS profile selection
function agp {
echo $AWS_PROFILE
}
function asp {
local rprompt=${RPROMPT/<aws:$AWS_PROFILE>/}
export AWS_DEFAULT_PROFILE=$1
export AWS_PROFILE=$1
export RPROMPT="<aws:$AWS_PROFILE>$rprompt"
if [[ -z "$1" ]]; then
echo AWS profile cleared.
fi
}
function aws_profiles {
......@@ -17,6 +19,18 @@ function aws_profiles {
compctl -K aws_profiles asp
# AWS prompt
function aws_prompt_info() {
[[ -z $AWS_PROFILE ]] && return
echo "${ZSH_THEME_AWS_PREFIX:=<aws:}${AWS_PROFILE}${ZSH_THEME_AWS_SUFFIX:=>}"
}
if [ "$SHOW_AWS_PROMPT" != false ]; then
export RPROMPT='$(aws_prompt_info)'"$RPROMPT"
fi
# Load awscli completions
_awscli-homebrew-installed() {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment