Browse Source

Style fixes and shorter command lookup

Marc Cornellà 8 years ago
parent
commit
a7e60e4a93
1 changed files with 24 additions and 19 deletions
  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
-}
+
+  # Load first found file
+  for f in $comp_files; do
+    if [[ -f "$f" ]]; then
+      source "$f"
+      break
+    fi
+  done
+}