mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2025-11-04 05:01:17 +08: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
					
				@ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user