summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorDavid Kane <dkanejs@gmail.com>2019-03-24 18:37:07 +0000
committerMarc Cornellà <marc.cornella@live.com>2019-03-24 19:37:45 +0100
commit532a784b806375370022605d8be17c1116553572 (patch)
tree1b84e5087667caa4330d4a60bd9c0519c5eeebfb /plugins
parent5ff21efad72117377c7b6cabd850d6b2b01ee31a (diff)
downloadzsh-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.md25
-rw-r--r--plugins/aws/aws.plugin.zsh20
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() {