浏览代码

cask: check for Homebrew path for completion file

Andrew Janke 9 年之前
父节点
当前提交
e1e3acc722
共有 1 个文件被更改,包括 21 次插入5 次删除
  1. 21 5
      plugins/cask/cask.plugin.zsh

+ 21 - 5
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
+}