| 
									
										
										
										
											2010-07-19 09:51:28 -07:00
										 |  |  | # Bash completion script for brew(1) | 
					
						
							| 
									
										
										
										
											2009-09-05 20:47:15 +01:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | # To use, add the following to your .bashrc: | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #    . $(brew --repository)/Library/Contributions/brew_bash_completion.sh | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Alternatively, if you have installed the bash-completion package, | 
					
						
							|  |  |  | # you can create a symlink to this file in one of the following directories: | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #    $(brew --prefix)/etc/bash_completion.d | 
					
						
							|  |  |  | #    $(brew --prefix)/share/bash-completion/completions | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2012-03-29 19:59:35 -05:00
										 |  |  | # Installing to etc/bash_completion.d will cause bash-completion to load | 
					
						
							|  |  |  | # it automatically at shell startup time. If you choose to install it to | 
					
						
							|  |  |  | # share/bash-completion/completions, it will be loaded on-demand (i.e. the | 
					
						
							|  |  |  | # first time you invoke the `brew` command in a shell session). | 
					
						
							| 
									
										
										
										
											2009-07-31 09:45:04 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | __brewcomp_words_include () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local i=1 | 
					
						
							|  |  |  |     while [[ $i -lt $COMP_CWORD ]]; do | 
					
						
							|  |  |  |         if [[ "${COMP_WORDS[i]}" = "$1" ]]; then | 
					
						
							|  |  |  |             return 0 | 
					
						
							|  |  |  |         fi | 
					
						
							|  |  |  |         i=$((++i)) | 
					
						
							|  |  |  |     done | 
					
						
							|  |  |  |     return 1 | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Find the previous non-switch word | 
					
						
							|  |  |  | __brewcomp_prev () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local idx=$((COMP_CWORD - 1)) | 
					
						
							|  |  |  |     local prv="${COMP_WORDS[idx]}" | 
					
						
							|  |  |  |     while [[ $prv == -* ]]; do | 
					
						
							|  |  |  |         idx=$((--idx)) | 
					
						
							|  |  |  |         prv="${COMP_WORDS[idx]}" | 
					
						
							|  |  |  |     done | 
					
						
							|  |  |  |     echo "$prv" | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __brewcomp () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     # break $1 on space, tab, and newline characters, | 
					
						
							|  |  |  |     # and turn it into a newline separated list of words | 
					
						
							|  |  |  |     local list s sep=$'\n' IFS=$' '$'\t'$'\n' | 
					
						
							|  |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     for s in $1; do | 
					
						
							|  |  |  |         __brewcomp_words_include "$s" && continue | 
					
						
							|  |  |  |         list="$list$s$sep" | 
					
						
							|  |  |  |     done | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     IFS=$sep | 
					
						
							|  |  |  |     COMPREPLY=($(compgen -W "$list" -- "$cur")) | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Don't use __brewcomp() in any of the __brew_complete_foo functions, as | 
					
						
							|  |  |  | # it is too slow and is not worth it just for duplicate elimination. | 
					
						
							|  |  |  | __brew_complete_formulae () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     local ff=$(\ls $(brew --repository)/Library/Formula 2>/dev/null | sed 's/\.rb//g') | 
					
						
							|  |  |  |     local af=$(\ls $(brew --repository)/Library/Aliases 2>/dev/null | sed 's/\.rb//g') | 
					
						
							| 
									
										
										
										
											2012-03-16 19:11:30 -05:00
										 |  |  |     local tf tap | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     for dir in $(\ls $(brew --repository)/Library/Taps 2>/dev/null); do | 
					
						
							|  |  |  |         tap="$(echo "$dir" | sed 's|-|/|g')" | 
					
						
							|  |  |  |         tf="$tf $(\ls -1R "$(brew --repository)/Library/Taps/$dir" 2>/dev/null | | 
					
						
							|  |  |  |                   grep '.\+.rb' | sed -E 's|(.+)\.rb|'"${tap}"'/\1|g')"
 | 
					
						
							|  |  |  |     done | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     COMPREPLY=($(compgen -W "$ff $af $tf" -- "$cur")) | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __brew_complete_installed () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     local inst=$(\ls $(brew --cellar)) | 
					
						
							|  |  |  |     COMPREPLY=($(compgen -W "$inst" -- "$cur")) | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __brew_complete_outdated () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     local od=$(brew outdated --quiet) | 
					
						
							|  |  |  |     COMPREPLY=($(compgen -W "$od" -- "$cur")) | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-03-23 22:42:43 -05:00
										 |  |  | __brew_complete_tapped () | 
					
						
							| 
									
										
										
										
											2012-03-16 16:52:35 -05:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     __brewcomp "$(\ls $(brew --repository)/Library/Taps 2>/dev/null | sed 's/-/\//g')" | 
					
						
							| 
									
										
										
										
											2012-03-16 16:52:35 -05:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-03-23 22:42:43 -05:00
										 |  |  | __brew_complete_taps () | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if [[ -z "$__brew_cached_taps" ]]; then | 
					
						
							| 
									
										
										
										
											2012-04-30 15:32:07 -05:00
										 |  |  |         __brew_cached_taps="$(brew ls-taps)" | 
					
						
							| 
									
										
										
										
											2012-03-23 22:42:43 -05:00
										 |  |  |     fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     __brewcomp "$__brew_cached_taps" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | _brew_cleanup () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     case "$cur" in | 
					
						
							|  |  |  |     --*) | 
					
						
							|  |  |  |         __brewcomp "--force" | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							|  |  |  |     __brew_complete_installed | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | _brew_create () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     case "$cur" in | 
					
						
							|  |  |  |     --*) | 
					
						
							|  |  |  |         __brewcomp "--autotools --cmake --no-fetch" | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | _brew_deps () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     case "$cur" in | 
					
						
							|  |  |  |     --*) | 
					
						
							|  |  |  |         __brewcomp "--1 --all --tree" | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							|  |  |  |     __brew_complete_formulae | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | _brew_diy () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     case "$cur" in | 
					
						
							|  |  |  |     --*) | 
					
						
							|  |  |  |         __brewcomp "--set-name --set-version" | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | _brew_fetch () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     case "$cur" in | 
					
						
							|  |  |  |     --*) | 
					
						
							|  |  |  |         __brewcomp "--deps --force --HEAD" | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							|  |  |  |     __brew_complete_formulae | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | _brew_info () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     case "$cur" in | 
					
						
							|  |  |  |     --*) | 
					
						
							|  |  |  |         __brewcomp "--all --github" | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							|  |  |  |     __brew_complete_formulae | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | _brew_install () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     local prv=$(__brewcomp_prev) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     case "$cur" in | 
					
						
							|  |  |  |     --*) | 
					
						
							|  |  |  |         if __brewcomp_words_include "--interactive"; then | 
					
						
							|  |  |  |             __brewcomp "
 | 
					
						
							|  |  |  |                 --devel | 
					
						
							|  |  |  |                 --force | 
					
						
							|  |  |  |                 --git | 
					
						
							|  |  |  |                 --HEAD | 
					
						
							|  |  |  |                 --use-clang | 
					
						
							|  |  |  |                 --use-gcc | 
					
						
							|  |  |  |                 --use-llvm | 
					
						
							|  |  |  |                 "
 | 
					
						
							|  |  |  |         else | 
					
						
							|  |  |  |             __brewcomp "
 | 
					
						
							|  |  |  |                 --build-from-source | 
					
						
							|  |  |  |                 --debug | 
					
						
							|  |  |  |                 --devel | 
					
						
							|  |  |  |                 --force | 
					
						
							|  |  |  |                 --fresh | 
					
						
							|  |  |  |                 --HEAD | 
					
						
							|  |  |  |                 --ignore-dependencies | 
					
						
							|  |  |  |                 --interactive | 
					
						
							|  |  |  |                 --use-clang | 
					
						
							|  |  |  |                 --use-gcc | 
					
						
							|  |  |  |                 --use-llvm | 
					
						
							|  |  |  |                 --verbose | 
					
						
							|  |  |  |                 $(brew options --compact "$prv") | 
					
						
							|  |  |  |                 "
 | 
					
						
							|  |  |  |         fi | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							|  |  |  |     __brew_complete_formulae | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-07-11 20:08:09 -07:00
										 |  |  | _brew_link () | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     case "$cur" in | 
					
						
							|  |  |  |     --*) | 
					
						
							|  |  |  |         if __brewcomp_words_include "--dry-run"; then | 
					
						
							|  |  |  |             return | 
					
						
							|  |  |  |         elif __brewcomp_words_include "--force"; then | 
					
						
							|  |  |  |             return | 
					
						
							|  |  |  |         else | 
					
						
							|  |  |  |             __brewcomp "--dry-run --force" | 
					
						
							|  |  |  |             return | 
					
						
							|  |  |  |         fi | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							|  |  |  |     __brew_complete_installed | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | _brew_list () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     case "$cur" in | 
					
						
							|  |  |  |     --*) | 
					
						
							|  |  |  |         # options to brew-list are mutually exclusive | 
					
						
							|  |  |  |         if __brewcomp_words_include "--unbrewed"; then | 
					
						
							|  |  |  |             return | 
					
						
							|  |  |  |         elif __brewcomp_words_include "--verbose"; then | 
					
						
							|  |  |  |             return | 
					
						
							|  |  |  |         elif __brewcomp_words_include "--versions"; then | 
					
						
							|  |  |  |             return | 
					
						
							|  |  |  |         else | 
					
						
							|  |  |  |             __brewcomp "--unbrewed --verbose --versions" | 
					
						
							|  |  |  |             return | 
					
						
							|  |  |  |         fi | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							|  |  |  |     __brew_complete_installed | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | _brew_log () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     # if git-completion is loaded, then we complete git-log options | 
					
						
							|  |  |  |     declare -F _git_log >/dev/null || return | 
					
						
							|  |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     case "$cur" in | 
					
						
							|  |  |  |     --*) | 
					
						
							|  |  |  |         __brewcomp "
 | 
					
						
							|  |  |  |             $__git_log_common_options | 
					
						
							|  |  |  |             $__git_log_shortlog_options | 
					
						
							|  |  |  |             $__git_log_gitk_options | 
					
						
							|  |  |  |             $__git_diff_common_options | 
					
						
							|  |  |  |             --walk-reflogs --graph --decorate | 
					
						
							|  |  |  |             --abbrev-commit --oneline --reverse | 
					
						
							|  |  |  |             "
 | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							|  |  |  |     __brew_complete_formulae | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | _brew_options () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     case "$cur" in | 
					
						
							|  |  |  |     --*) | 
					
						
							|  |  |  |         __brewcomp "--all --compact --installed" | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							|  |  |  |     __brew_complete_formulae | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | _brew_outdated () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     case "$cur" in | 
					
						
							|  |  |  |     --*) | 
					
						
							|  |  |  |         __brewcomp "--quiet" | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | _brew_search () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     case "$cur" in | 
					
						
							|  |  |  |     --*) | 
					
						
							|  |  |  |         __brewcomp "--fink --macports" | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | _brew_uninstall () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     case "$cur" in | 
					
						
							|  |  |  |     --*) | 
					
						
							|  |  |  |         __brewcomp "--force" | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							|  |  |  |     __brew_complete_installed | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | _brew_update () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     case "$cur" in | 
					
						
							|  |  |  |     --*) | 
					
						
							|  |  |  |         __brewcomp "--rebase --verbose" | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | _brew_uses () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     case "$cur" in | 
					
						
							|  |  |  |     --*) | 
					
						
							|  |  |  |         __brewcomp "--installed" | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							|  |  |  |     __brew_complete_formulae | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | _brew_versions () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local cur="${COMP_WORDS[COMP_CWORD]}" | 
					
						
							|  |  |  |     case "$cur" in | 
					
						
							|  |  |  |     --*) | 
					
						
							|  |  |  |         __brewcomp "--compact" | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							|  |  |  |     __brew_complete_formulae | 
					
						
							| 
									
										
										
										
											2009-07-28 01:45:17 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | _brew () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     local i=1 cmd | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # find the subcommand | 
					
						
							|  |  |  |     while [[ $i -lt $COMP_CWORD ]]; do | 
					
						
							|  |  |  |         local s="${COMP_WORDS[i]}" | 
					
						
							|  |  |  |         case "$s" in | 
					
						
							|  |  |  |         --*) | 
					
						
							|  |  |  |             cmd="$s" | 
					
						
							|  |  |  |             break | 
					
						
							|  |  |  |             ;; | 
					
						
							|  |  |  |         -*) | 
					
						
							|  |  |  |             ;; | 
					
						
							|  |  |  |         *) | 
					
						
							|  |  |  |             cmd="$s" | 
					
						
							|  |  |  |             break | 
					
						
							|  |  |  |             ;; | 
					
						
							|  |  |  |         esac | 
					
						
							|  |  |  |         i=$((++i)) | 
					
						
							|  |  |  |     done | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if [[ $i -eq $COMP_CWORD ]]; then | 
					
						
							| 
									
										
										
										
											2012-07-18 08:25:07 -05:00
										 |  |  |         local ext=$(\ls -p $(brew --repository)/Library/Contributions/cmds \
 | 
					
						
							| 
									
										
										
										
											2012-07-17 22:09:47 -05:00
										 |  |  |                 2>/dev/null | sed -e "s/\.rb//g" -e "s/brew-//g" \
 | 
					
						
							| 
									
										
										
										
											2012-07-18 08:25:07 -05:00
										 |  |  |                 -e "s/.*\///g") | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |         __brewcomp "
 | 
					
						
							|  |  |  |             --cache --cellar --config | 
					
						
							|  |  |  |             --env --prefix --repository | 
					
						
							|  |  |  |             audit | 
					
						
							|  |  |  |             cat | 
					
						
							|  |  |  |             cleanup | 
					
						
							|  |  |  |             create | 
					
						
							|  |  |  |             deps | 
					
						
							|  |  |  |             diy configure | 
					
						
							|  |  |  |             doctor | 
					
						
							|  |  |  |             edit | 
					
						
							|  |  |  |             fetch | 
					
						
							|  |  |  |             help | 
					
						
							|  |  |  |             home | 
					
						
							|  |  |  |             info abv | 
					
						
							|  |  |  |             install | 
					
						
							| 
									
										
										
										
											2012-07-12 02:41:12 -05:00
										 |  |  |             link ln | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |             list ls | 
					
						
							|  |  |  |             log | 
					
						
							| 
									
										
										
										
											2012-06-13 08:12:41 -05:00
										 |  |  |             missing | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |             options | 
					
						
							|  |  |  |             outdated | 
					
						
							|  |  |  |             prune | 
					
						
							|  |  |  |             search | 
					
						
							|  |  |  |             tap | 
					
						
							|  |  |  |             test | 
					
						
							|  |  |  |             uninstall remove rm | 
					
						
							|  |  |  |             unlink | 
					
						
							|  |  |  |             untap | 
					
						
							|  |  |  |             update | 
					
						
							|  |  |  |             upgrade | 
					
						
							|  |  |  |             uses | 
					
						
							|  |  |  |             versions | 
					
						
							|  |  |  |             $ext | 
					
						
							|  |  |  |             "
 | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # subcommands have their own completion functions | 
					
						
							|  |  |  |     case "$cmd" in | 
					
						
							|  |  |  |     --cache|--cellar|--prefix)  __brew_complete_formulae ;; | 
					
						
							|  |  |  |     audit|cat|edit|home)        __brew_complete_formulae ;; | 
					
						
							| 
									
										
										
										
											2012-07-11 20:08:09 -07:00
										 |  |  |     test|unlink)                __brew_complete_installed ;; | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     upgrade)                    __brew_complete_outdated ;; | 
					
						
							|  |  |  |     cleanup)                    _brew_cleanup ;; | 
					
						
							|  |  |  |     create)                     _brew_create ;; | 
					
						
							|  |  |  |     deps)                       _brew_deps ;; | 
					
						
							|  |  |  |     diy|configure)              _brew_diy ;; | 
					
						
							|  |  |  |     fetch)                      _brew_fetch ;; | 
					
						
							|  |  |  |     info|abv)                   _brew_info ;; | 
					
						
							|  |  |  |     install)                    _brew_install ;; | 
					
						
							| 
									
										
										
										
											2012-07-11 20:08:09 -07:00
										 |  |  |     link|ln)                    _brew_link ;; | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     list|ls)                    _brew_list ;; | 
					
						
							|  |  |  |     log)                        _brew_log ;; | 
					
						
							| 
									
										
										
										
											2012-06-13 08:12:41 -05:00
										 |  |  |     missing)                    __brew_complete_formulae ;; | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     options)                    _brew_options ;; | 
					
						
							|  |  |  |     outdated)                   _brew_outdated ;; | 
					
						
							|  |  |  |     search|-S)                  _brew_search ;; | 
					
						
							| 
									
										
										
										
											2012-03-23 22:42:43 -05:00
										 |  |  |     tap)                        __brew_complete_taps ;; | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     uninstall|remove|rm)        _brew_uninstall ;; | 
					
						
							| 
									
										
										
										
											2012-03-23 22:42:43 -05:00
										 |  |  |     untap)                      __brew_complete_tapped ;; | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     update)                     _brew_update ;; | 
					
						
							|  |  |  |     uses)                       _brew_uses ;; | 
					
						
							|  |  |  |     versions)                   _brew_versions ;; | 
					
						
							|  |  |  |     *)                          ;; | 
					
						
							|  |  |  |     esac | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # keep around for compatibility | 
					
						
							|  |  |  | _brew_to_completion () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-03-16 19:09:24 -05:00
										 |  |  |     _brew | 
					
						
							| 
									
										
										
										
											2012-01-21 00:08:35 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | complete -o bashdefault -o default -F _brew brew |