mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-26 21:51:05 +01: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
|
# aws
|
||||||
|
|
||||||
This plugin provides completion support for [awscli](https://docs.aws.amazon.com/cli/latest/reference/index.html)
|
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 few utilities to manage AWS profiles and display them in the prompt.
|
||||||
and a function to get the current AWS profile. The current AWS profile is also displayed in `RPROMPT`.
|
|
||||||
|
|
||||||
To use it, add `aws` to the plugins array in your zshrc file.
|
To use it, add `aws` to the plugins array in your zshrc file.
|
||||||
|
|
||||||
|
@ -12,9 +11,23 @@ plugins=(... aws)
|
||||||
|
|
||||||
## Plugin commands
|
## Plugin commands
|
||||||
|
|
||||||
* `asp <profile>`: Sets `AWS_PROFILE` and `AWS_DEFAULT_PROFILE` (legacy) to `<profile>`.
|
* `asp [<profile>]`: Sets `$AWS_PROFILE` and `$AWS_DEFAULT_PROFILE` (legacy) to `<profile>`.
|
||||||
It also adds it to your RPROMPT.
|
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 {
|
function agp {
|
||||||
echo $AWS_PROFILE
|
echo $AWS_PROFILE
|
||||||
}
|
}
|
||||||
|
|
||||||
function asp {
|
function asp {
|
||||||
local rprompt=${RPROMPT/<aws:$AWS_PROFILE>/}
|
|
||||||
|
|
||||||
export AWS_DEFAULT_PROFILE=$1
|
export AWS_DEFAULT_PROFILE=$1
|
||||||
export AWS_PROFILE=$1
|
export AWS_PROFILE=$1
|
||||||
|
|
||||||
export RPROMPT="<aws:$AWS_PROFILE>$rprompt"
|
if [[ -z "$1" ]]; then
|
||||||
|
echo AWS profile cleared.
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function aws_profiles {
|
function aws_profiles {
|
||||||
|
@ -17,6 +19,18 @@ function aws_profiles {
|
||||||
compctl -K aws_profiles asp
|
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
|
# Load awscli completions
|
||||||
|
|
||||||
_awscli-homebrew-installed() {
|
_awscli-homebrew-installed() {
|
||||||
|
|
Loading…
Reference in a new issue