mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-20 12:50:08 +00:00
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: "Vassilis S. Moustakas" <vsmoustakas@gmail.com>
This commit is contained in:
parent
5ff21efad7
commit
532a784b80
2 changed files with 36 additions and 9 deletions
|
@ -1,8 +1,7 @@
|
|||
# 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 `>`.
|
||||
|
|
|
@ -1,14 +1,16 @@
|
|||
# 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() {
|
||||
|
|
Loading…
Reference in a new issue