completion: avoid unnecessary brew invocations

This commit is contained in:
Jack Nagel 2013-04-30 01:24:11 -05:00
parent b163ed03e9
commit 0bfcad4cd3

View File

@ -60,13 +60,14 @@ __brewcomp ()
__brew_complete_formulae () __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 lib=$(brew --repository)/Library
local af=$(\ls $(brew --repository)/Library/Aliases 2>/dev/null | sed 's/\.rb//g') local ff=$(\ls ${lib}/Formula 2>/dev/null | sed 's/\.rb//g')
local af=$(\ls ${lib}/Aliases 2>/dev/null | sed 's/\.rb//g')
local tf tap local tf tap
for dir in $(\ls $(brew --repository)/Library/Taps 2>/dev/null); do for dir in $(\ls ${lib}/Taps 2>/dev/null); do
tap="$(echo "$dir" | sed 's|-|/|g')" tap="$(echo "$dir" | sed 's|-|/|g')"
tf="$tf $(\ls -1R "$(brew --repository)/Library/Taps/$dir" 2>/dev/null | tf="$tf $(\ls -1R "${lib}/Taps/${dir}" 2>/dev/null |
grep '.\+.rb' | sed -E 's|(.+)\.rb|'"${tap}"'/\1|g')" grep '.\+.rb' | sed -E 's|(.+)\.rb|'"${tap}"'/\1|g')"
done done