prev=${COMP_WORDS[COMP_CWORD-1]}
cmd=""
+ # Get list of all available external commands
+ extcmdpath="`brew --prefix`/Library/Homebrew/cmd";
+ if [ -d "$extcmdpath" ]; then
+ EXTCMD="$EXTCMD `cd "$extcmdpath"; ls -1 -- *.rb 2>/dev/null \
+ | cut -d'.' -f1`"
+ fi
+ examplespath="`brew --prefix`/Library/Contributions/examples"
+ if [ -d "$examplespath" ]; then
+ EXTCMD="$EXTCMD `cd "$examplespath"; ls -1 -- brew-* 2>/dev/null \
+ | cut -d'.' -f1 | cut -d'-' -f2- | sed -e 's/\*//g'`"
+ fi
+
declare -i i=$COMP_CWORD-1
while [ $i -gt 0 ]; do
- if [[ ${COMP_WORDS[i]} != -* ]]; then
+ if [[ ${COMP_WORDS[i]} != -* \
+ || ${COMP_WORDS[i]} == "--cache" \
+ || ${COMP_WORDS[i]} == "--cellar" \
+ || ${COMP_WORDS[i]} == "--config" \
+ || ${COMP_WORDS[i]} == "--prefix" ]]; then
cmd=${COMP_WORDS[i]}
break
fi
done
case "$cmd" in
- "cleanup"|"edit"|"home"|"log"|"prune")
+ "cat"|"cleanup"|"deps"|"edit"|"home"|"log"|"prune"|"uses" \
+ |"--cache"|"--cellar"|"--prefix")
_brew_formula "$cur"
return 0
;;
- "link"|"remove"|"uninstall"|"unlink")
+ "link"|"remove"|"rm"|"uninstall"|"unlink")
_brew_formula_installed "$cur"
return 0
;;
"create")
if [[ "$cur" == -* ]]; then
- COMPREPLY=( $(compgen -W '--macports' \
- -- "$cur") )
+ COMPREPLY=( $(compgen -W '--macports --fink \
+ --cache' -- "$cur") )
fi
return 0
;;
"info")
if [[ "$cur" == -* ]]; then
- COMPREPLY=( $(compgen -W '--github' \
+ COMPREPLY=( $(compgen -W '--all --github' \
-- "$cur") )
else
_brew_formula "$cur"
;;
"install")
if [[ "$cur" == -* ]]; then
- COMPREPLY=( $(compgen -W '--HEAD -H \
- --debug -d --interactive -i
- --verbose -v --ignore-dependencies' \
+ COMPREPLY=( $(compgen -W '--git --HEAD -H \
+ --debug -d --force -f \
+ --interactive -i --verbose -v \
+ --ignore-dependencies --use-llvm' \
-- "$cur") )
else
_brew_formula "$cur"
fi
return 0
;;
- "search"|"update")
- return 0
- ;;
+ *)
+ for c in $EXTCMD; do
+ if [ "$cmd" = "$c" ]; then
+ _brew_formula "$cur"
+ return 0
+ fi
+ done
esac
if [[ "$cur" == -* ]]; then
- COMPREPLY=( $(compgen -W '--cache --cellar --help --prefix \
- --version -v -H' -- "$cur") )
+ COMPREPLY=( $(compgen -W '--cache --cellar --config \
+ --env --help --prefix --version -v -H' \
+ -- "$cur") )
elif [ "$cmd" = "" ]; then
- COMPREPLY=( $(compgen -W 'cleanup create edit home info \
- install link list log outdated prune remove search \
- uninstall unlink update' -- "$cur") )
+ COMPREPLY=( $(compgen -W 'cat cleanup create deps doctor \
+ edit home info install link list log outdated prune \
+ remove rm search uninstall unlink up update uses \
+ $EXTCMD' \
+ -- "$cur") )
fi
}
complete -F _brew brew