Tab completion for tapped formulae

So you can do e.g.

    $ brew install adamv<TAB>
    Display all 106 possibilities? (y or n)
    $ brew install adamv/alt/openss<TAB>
    adamv/alt/openssh     adamv/alt/openssl098  adamv/alt/openssl100

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
This commit is contained in:
Jack Nagel 2012-03-16 19:11:30 -05:00
parent ee0041f290
commit 2ed0240cb1

View File

@ -82,7 +82,15 @@ __brew_complete_formulae ()
local cur="${COMP_WORDS[COMP_CWORD]}" local cur="${COMP_WORDS[COMP_CWORD]}"
local ff=$(\ls $(brew --repository)/Library/Formula 2>/dev/null | sed 's/\.rb//g') 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') local af=$(\ls $(brew --repository)/Library/Aliases 2>/dev/null | sed 's/\.rb//g')
COMPREPLY=($(compgen -W "$ff $af" -- "$cur")) 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"))
} }
__brew_complete_installed () __brew_complete_installed ()