Permalink
Browse files

adding homebrew completions - and a function dir

  • Loading branch information...
1 parent c03aab5 commit b865f2ab38156c33bdb1d6ffc6df56b3f2d53588 @kastner kastner committed Oct 26, 2009
Showing with 64 additions and 0 deletions.
  1. +61 −0 functions/_brew
  2. +3 −0 oh-my-zsh.sh
View
61 functions/_brew
@@ -0,0 +1,61 @@
+#compdef brew
+
+# copied from _fink
+
+_brew_all_formulae() {
+ formulae=(`brew search`)
+}
+
+_brew_installed_formulae() {
+ installed_formulae=(`brew list`)
+}
+
+local -a _1st_arguments
+_1st_arguments=(
+ 'install:install a formula'
+ 'remove:remove a formula'
+ 'search:search for a formula (/regex/ or string)'
+ 'list:list files in a formula or not-installed formulae'
+ 'link:link a formula'
+ 'unlink:unlink a formula'
+ 'home:visit the homepage of a formula or the brew project'
+ 'info:information about a formula'
+ 'prune:remove dead links'
+ 'update:freshen up links'
+ 'log:git commit log for a formula'
+ 'create:create a new formula'
+ 'edit:edit a formula'
+)
+
+local expl
+local -a formula installed_formulae
+
+_arguments \
+ '(-v --verbose)'{-v,--verbose}'[verbose]' \
+ '(--version)--version[version information]' \
+ '(--prefix)--prefix[where brew lives on this system]' \
+ '(--cache)--cache[brew cache]' \
+ '*:: :->subcmds' && return 0
+
+if (( CURRENT == 1 )); then
+ _describe -t commands "brew subcommand" _1st_arguments
+ return
+fi
+
+case "$words[1]" in
+ list)
+ _arguments \
+ '(--unbrewed)--unbrewed[files in brew --prefix not controlled by brew]' \
+ '1: :->forms' && return 0
+
+ if [[ "$state" == forms ]]; then
+ _brew_installed_formulae
+ _requested installed_formulae expl 'installed formulae' compadd -a installed_formulae
+ fi ;;
+ install|home|log|info)
+ _brew_all_formulae
+ _wanted formulae expl 'all formulae' compadd -a formulae ;;
+ remove|edit|xo)
+ _brew_installed_formulae
+ _wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae ;;
+esac
View
3 oh-my-zsh.sh
@@ -1,5 +1,8 @@
# Initializes Oh My Zsh
+# add a function path
+fpath=($ZSH/functions $fpath)
+
# Load all of the config files in ~/oh-my-zsh that end in .zsh
# TIP: Add files you don't want in git to .gitignore
for config_file ($ZSH/lib/*.zsh) source $config_file

0 comments on commit b865f2a

Please sign in to comment.