summaryrefslogtreecommitdiff
path: root/plugins/aws
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/aws')
-rw-r--r--plugins/aws/aws.plugin.zsh66
1 files changed, 36 insertions, 30 deletions
diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh
index 567311372..eab3dc76b 100644
--- a/plugins/aws/aws.plugin.zsh
+++ b/plugins/aws/aws.plugin.zsh
@@ -62,36 +62,42 @@ fi
# Load awscli completions
-function _awscli-homebrew-installed() {
- # check if Homebrew is installed
- (( $+commands[brew] )) || return 1
-
- # speculatively check default brew prefix
- if [ -h /usr/local/opt/awscli ]; then
- _brew_prefix=/usr/local/opt/awscli
- else
- # ok, it is not in the default prefix
- # this call to brew is expensive (about 400 ms), so at least let's make it only once
- _brew_prefix=$(brew --prefix awscli)
+# AWS CLI v2 comes with its own autocompletion. Check if that is there, otherwise fall back
+if [[ -x /usr/local/bin/aws_completer ]]; then
+ autoload -Uz bashcompinit && bashcompinit
+ complete -C aws_completer aws
+else
+ function _awscli-homebrew-installed() {
+ # check if Homebrew is installed
+ (( $+commands[brew] )) || return 1
+
+ # speculatively check default brew prefix
+ if [ -h /usr/local/opt/awscli ]; then
+ _brew_prefix=/usr/local/opt/awscli
+ else
+ # ok, it is not in the default prefix
+ # this call to brew is expensive (about 400 ms), so at least let's make it only once
+ _brew_prefix=$(brew --prefix awscli)
+ fi
+ }
+
+ # get aws_zsh_completer.sh location from $PATH
+ _aws_zsh_completer_path="$commands[aws_zsh_completer.sh]"
+
+ # otherwise check common locations
+ if [[ -z $_aws_zsh_completer_path ]]; then
+ # Homebrew
+ if _awscli-homebrew-installed; then
+ _aws_zsh_completer_path=$_brew_prefix/libexec/bin/aws_zsh_completer.sh
+ # Ubuntu
+ elif [[ -e /usr/share/zsh/vendor-completions/_awscli ]]; then
+ _aws_zsh_completer_path=/usr/share/zsh/vendor-completions/_awscli
+ # RPM
+ else
+ _aws_zsh_completer_path=/usr/share/zsh/site-functions/aws_zsh_completer.sh
+ fi
fi
-}
-# get aws_zsh_completer.sh location from $PATH
-_aws_zsh_completer_path="$commands[aws_zsh_completer.sh]"
-
-# otherwise check common locations
-if [[ -z $_aws_zsh_completer_path ]]; then
- # Homebrew
- if _awscli-homebrew-installed; then
- _aws_zsh_completer_path=$_brew_prefix/libexec/bin/aws_zsh_completer.sh
- # Ubuntu
- elif [[ -e /usr/share/zsh/vendor-completions/_awscli ]]; then
- _aws_zsh_completer_path=/usr/share/zsh/vendor-completions/_awscli
- # RPM
- else
- _aws_zsh_completer_path=/usr/share/zsh/site-functions/aws_zsh_completer.sh
- fi
+ [[ -r $_aws_zsh_completer_path ]] && source $_aws_zsh_completer_path
+ unset _aws_zsh_completer_path _brew_prefix
fi
-
-[[ -r $_aws_zsh_completer_path ]] && source $_aws_zsh_completer_path
-unset _aws_zsh_completer_path _brew_prefix