diff options
author | Marc Cornellà <marc.cornella@live.com> | 2016-08-25 18:33:44 +0200 |
---|---|---|
committer | Marc Cornellà <marc.cornella@live.com> | 2016-08-25 18:33:44 +0200 |
commit | f2580833c071d19a0b738fdbadd0bdb735ddb86c (patch) | |
tree | ad23917efa2ebda714b4184f5db4a08dc87a62e9 | |
parent | d8b03f3f95c10b61f7a9d4bd690f6cb429fb6ae8 (diff) | |
parent | cf4da1b7ac69505105e7e0b36155f1664f760d88 (diff) | |
download | zsh-f2580833c071d19a0b738fdbadd0bdb735ddb86c.tar.gz zsh-f2580833c071d19a0b738fdbadd0bdb735ddb86c.tar.bz2 zsh-f2580833c071d19a0b738fdbadd0bdb735ddb86c.zip |
Merge branch 'apjanke-cask-homebrew-paths'
-rw-r--r-- | plugins/cask/README.md | 11 | ||||
-rw-r--r-- | plugins/cask/cask.plugin.zsh | 31 |
2 files changed, 37 insertions, 5 deletions
diff --git a/plugins/cask/README.md b/plugins/cask/README.md new file mode 100644 index 000000000..6457fd858 --- /dev/null +++ b/plugins/cask/README.md @@ -0,0 +1,11 @@ +# cask plugin + +Loads `cask` completion from non-standard locations, such as if installed +via Homebrew or others. To enable it, add `cask` to your plugins array: + +```zsh +plugins=(... cask) +``` + +Make sure you have the `cask` directory in your `$PATH` before loading +Oh My Zsh, otherwise you'll get the "command not found" error. 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 +} |