浏览代码

Style fixes and shorter command lookup

Marc Cornellà 8 年之前
父节点
当前提交
a7e60e4a93
共有 1 个文件被更改,包括 24 次插入19 次删除
  1. 24 19
      plugins/cask/cask.plugin.zsh

+ 24 - 19
plugins/cask/cask.plugin.zsh

@@ -1,21 +1,26 @@
 () {
 () {
-  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"
+  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
   fi
-}
+
+  # Load first found file
+  for f in $comp_files; do
+    if [[ -f "$f" ]]; then
+      source "$f"
+      break
+    fi
+  done
+}