diff --git a/Library/Contributions/brew_bash_completion.sh b/Library/Contributions/brew_bash_completion.sh index 383a53e602..246cd39682 100644 --- a/Library/Contributions/brew_bash_completion.sh +++ b/Library/Contributions/brew_bash_completion.sh @@ -26,20 +26,24 @@ _brew_to_completion() prev="${COMP_WORDS[prev_index]}" done + # Handle installation --options + if [[ ${COMP_WORDS[1]} == "install" && "$cur" == --* ]]; then + local opts=$( + local opts=( + --force --verbose --debug --use-clang --use-gcc --use-llvm --ignore-dependencies --HEAD + $(brew options --compact "$prev") + ) + for o in ${opts[*]}; do + [[ " ${COMP_WORDS[*]} " =~ " $o " ]] || echo "$o" + done + ) + COMPREPLY=( $(compgen -W "$opts" -- ${cur}) ) + return + fi + case "$prev" in # Commands that take a formula cat|deps|edit|fetch|home|homepage|info|install|log|missing|options|uses|versions) - # handle standard --options - if [[ "$prev" == "install" && "$cur" == --* ]]; then - local opts=$( - local opts=( --force --verbose --debug --use-clang --use-gcc --use-llvm --ignore-dependencies --HEAD ) - for o in ${opts[*]}; do - [[ " ${COMP_WORDS[*]} " =~ " $o " ]] || echo "$o" - done - ) - COMPREPLY=( $(compgen -W "$opts" -- ${cur}) ) - return - fi local ff=$(\ls $(brew --repository)/Library/Formula | sed "s/\.rb//g") local af=$(\ls $(brew --repository)/Library/Aliases 2> /dev/null | sed "s/\.rb//g") COMPREPLY=( $(compgen -W "${ff} ${af}" -- ${cur}) ) @@ -50,19 +54,6 @@ _brew_to_completion() COMPREPLY=( $(compgen -W "$(\ls $(brew --cellar))" -- ${cur}) ) return ;; - # Complete --options for selected brew - *) - if [[ ${COMP_WORDS[1]} == "install" && "$cur" == --* ]]; then - local opts=$( - local opts=( $(brew options --compact "$prev") ) - for o in ${opts[*]}; do - [[ " ${COMP_WORDS[*]} " =~ " $o " ]] || echo "$o" - done - ) - COMPREPLY=( $(compgen -W "$opts" -- ${cur}) ) - return - fi - ;; esac }