summaryrefslogtreecommitdiff
path: root/plugins/cask/cask.plugin.zsh
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2016-08-25 18:33:44 +0200
committerMarc Cornellà <marc.cornella@live.com>2016-08-25 18:33:44 +0200
commitf2580833c071d19a0b738fdbadd0bdb735ddb86c (patch)
treead23917efa2ebda714b4184f5db4a08dc87a62e9 /plugins/cask/cask.plugin.zsh
parentd8b03f3f95c10b61f7a9d4bd690f6cb429fb6ae8 (diff)
parentcf4da1b7ac69505105e7e0b36155f1664f760d88 (diff)
downloadzsh-f2580833c071d19a0b738fdbadd0bdb735ddb86c.tar.gz
zsh-f2580833c071d19a0b738fdbadd0bdb735ddb86c.tar.bz2
zsh-f2580833c071d19a0b738fdbadd0bdb735ddb86c.zip
Merge branch 'apjanke-cask-homebrew-paths'
Diffstat (limited to 'plugins/cask/cask.plugin.zsh')
-rw-r--r--plugins/cask/cask.plugin.zsh31
1 files changed, 26 insertions, 5 deletions
diff --git a/plugins/cask/cask.plugin.zsh b/plugins/cask/cask.plugin.zsh
index c55862924..29120b306 100644
--- a/plugins/cask/cask.plugin.zsh
+++ b/plugins/cask/cask.plugin.zsh
@@ -1,5 +1,26 @@
-if which cask &> /dev/null; then
- source $(dirname $(which cask))/../etc/cask_completion.zsh
-else
- print "zsh cask plugin: cask not found"
-fi
+() {
+ emulate -L zsh
+
+ if ! (( $+commands[cask] )); then
+ print "zsh cask plugin: cask command not found" >&2
+ return
+ fi
+
+ cask_base=${commands[cask]: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 (( $+commands[brew] )); then
+ comp_files+=($(brew --prefix)/share/zsh/site-functions/cask_completion.zsh)
+ fi
+
+ # Load first found file
+ for f in $comp_files; do
+ if [[ -f "$f" ]]; then
+ source "$f"
+ break
+ fi
+ done
+}