From b6f8649496b435a1675754ec052ffd72e27cb1d1 Mon Sep 17 00:00:00 2001 From: Osman Currim Date: Sun, 8 Dec 2013 02:40:09 -0500 Subject: [PATCH] Add bash completion support for "brew switch" First autocompletes on the names of installed packages and then autocompletes on available versions for that specific package Closes Homebrew/homebrew#25051. Signed-off-by: Jack Nagel --- Library/Contributions/brew_bash_completion.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Library/Contributions/brew_bash_completion.sh b/Library/Contributions/brew_bash_completion.sh index b6dfe18a5e..886c52ce3e 100644 --- a/Library/Contributions/brew_bash_completion.sh +++ b/Library/Contributions/brew_bash_completion.sh @@ -88,6 +88,23 @@ __brew_complete_outdated () COMPREPLY=($(compgen -W "$od" -- "$cur")) } +__brew_complete_versions () +{ + local formula="$1" + local versions=$(brew list --versions "$formula") + local cur="${COMP_WORDS[COMP_CWORD]}" + COMPREPLY=($(compgen -W "$versions" -X "$formula" -- "$cur")) +} + +_brew_switch () +{ + case "$COMP_CWORD" in + 2) __brew_complete_installed ;; + 3) __brew_complete_versions "${COMP_WORDS[COMP_CWORD-1]}" ;; + *) ;; + esac +} + __brew_complete_tapped () { __brewcomp "$(\ls $(brew --repository)/Library/Taps 2>/dev/null | sed 's/-/\//g')" @@ -458,6 +475,7 @@ _brew () outdated) _brew_outdated ;; pin) __brew_complete_formulae ;; search|-S) _brew_search ;; + switch) _brew_switch ;; tap) _brew_complete_tap ;; uninstall|remove|rm) _brew_uninstall ;; unpin) __brew_complete_formulae ;;