aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOsman Currim2013-12-08 02:40:09 -0500
committerJack Nagel2013-12-12 19:08:23 -0600
commitd396454de3e618876badd97178721f7fcd3d2390 (patch)
treef2a2f135bc5a9699957e9bc0802cc21b690aa821
parent0ca3a0939ea39e18c9e1c9ec0c6fd97a8d0b7d9a (diff)
downloadhomebrew-d396454de3e618876badd97178721f7fcd3d2390.tar.bz2
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 #25051. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
-rw-r--r--Library/Contributions/brew_bash_completion.sh18
1 files changed, 18 insertions, 0 deletions
diff --git a/Library/Contributions/brew_bash_completion.sh b/Library/Contributions/brew_bash_completion.sh
index b6dfe18a5..886c52ce3 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 ;;