diff options
author | Tuowen Zhao <ztuowen@gmail.com> | 2020-04-24 20:54:33 -0600 |
---|---|---|
committer | Tuowen Zhao <ztuowen@gmail.com> | 2020-04-24 20:54:33 -0600 |
commit | c197ad40f1dca62fd1e0e555e7bfc84e39f31223 (patch) | |
tree | 5c1e753e0ff2cb9d0e08a699f17352225b9ef9f1 /plugins/aws/aws.plugin.zsh | |
parent | 0b67340fd2fe9330d8487491e1983ad1a111fb2b (diff) | |
parent | 2560f04982dfc2693221c7c0f47d1a71df09a794 (diff) | |
download | zsh-c197ad40f1dca62fd1e0e555e7bfc84e39f31223.tar.gz zsh-c197ad40f1dca62fd1e0e555e7bfc84e39f31223.tar.bz2 zsh-c197ad40f1dca62fd1e0e555e7bfc84e39f31223.zip |
Merge branch 'master' of https://github.com/ohmyzsh/ohmyzsh
Diffstat (limited to 'plugins/aws/aws.plugin.zsh')
-rw-r--r-- | plugins/aws/aws.plugin.zsh | 69 |
1 files changed, 39 insertions, 30 deletions
diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index 567311372..6fa8362ca 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -62,36 +62,45 @@ 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 + # NixOS + elif [[ -e "${commands[aws]:P:h:h}/share/zsh/site-functions/aws_zsh_completer.sh" ]]; then + _aws_zsh_completer_path="${commands[aws]:P:h:h}/share/zsh/site-functions/aws_zsh_completer.sh" + # 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 |