diff --git a/plugins/cask/cask.plugin.zsh b/plugins/cask/cask.plugin.zsh index c55862924..bc0006d9f 100644 --- a/plugins/cask/cask.plugin.zsh +++ b/plugins/cask/cask.plugin.zsh @@ -1,5 +1,21 @@ -if which cask &> /dev/null; then - source $(dirname $(which cask))/../etc/cask_completion.zsh -else - print "zsh cask plugin: cask not found" -fi +() { + if which cask &> /dev/null; then + local cask_bin cask_base f comp_files + cask_bin=$(which cask) + cask_base=${cask_bin:h:h} + # Plain cask installation location (for Cask 0.7.2 and earlier) + comp_files=( $cask_base/etc/cask_completion.zsh ) + # Mac Homebrew installs the completion in a different location + if which brew &> /dev/null; then + comp_files+=`brew --prefix`/share/zsh/site-functions/cask_completion.zsh + fi + for f in $comp_files; do + if [[ -f $f ]]; then + source $f; + break; + fi + done + else + print "zsh cask plugin: cask not found" + fi +} \ No newline at end of file