diff options
author | David Kane <dkanejs@gmail.com> | 2019-03-24 18:37:07 +0000 |
---|---|---|
committer | Marc Cornellà <marc.cornella@live.com> | 2019-03-24 19:37:45 +0100 |
commit | 532a784b806375370022605d8be17c1116553572 (patch) | |
tree | 1b84e5087667caa4330d4a60bd9c0519c5eeebfb /plugins | |
parent | 5ff21efad72117377c7b6cabd850d6b2b01ee31a (diff) | |
download | zsh-532a784b806375370022605d8be17c1116553572.tar.gz zsh-532a784b806375370022605d8be17c1116553572.tar.bz2 zsh-532a784b806375370022605d8be17c1116553572.zip |
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>
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/aws/README.md | 25 | ||||
-rw-r--r-- | plugins/aws/aws.plugin.zsh | 20 |
2 files changed, 36 insertions, 9 deletions
diff --git a/plugins/aws/README.md b/plugins/aws/README.md index 8a45199b8..57ab1e5ac 100644 --- a/plugins/aws/README.md +++ b/plugins/aws/README.md @@ -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 `>`. diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index 9cb69dd09..2fb351812 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -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() { |