Skip to content

Commit

Permalink
Merge pull request hashicorp#1763 from ekalinin/patch-1
Browse files Browse the repository at this point in the history
Improved autocompletion for bash
  • Loading branch information
mitchellh committed Jun 9, 2013
2 parents ba91602 + 898bff4 commit 6b1a7fc
Showing 1 changed file with 29 additions and 1 deletion.
30 changes: 29 additions & 1 deletion contrib/bash/completion.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,31 @@
# Autocompletion for Vagrant just put this line in your ~/.profile or link this file into it like:
# source /path/to/vagrant/contrib/bash/completion.sh
complete -W "$(echo `vagrant --help | awk '/^ /{print $1}'`;)" vagrant
_vagrant() {

cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
preprev="${COMP_WORDS[COMP_CWORD-2]}"

commands=$(vagrant --help | awk '/^ /{print $1}')

if [ $COMP_CWORD == 1 ] ; then
COMPREPLY=( $(compgen -W "${commands}" -- ${cur}) )
return 0
fi

if [ $COMP_CWORD == 2 ] ; then
local sub_commands=$(vagrant $prev --help | awk '/^ /{print $1}')
COMPREPLY=( $(compgen -W "${sub_commands}" -- ${cur}) )
return 0
fi

if [[ ${cur} == -* ]] ; then
local command_opts=$(vagrant $preprev $prev --help | grep -E -o "((-\w{1}|--(\w|-)*=?)){1,2}")
COMPREPLY=( $(compgen -W "${command_opts}" -- ${cur}) )
return 0
fi
}

complete -F _vagrant vagrant

# /* vim: set filetype=sh : */

0 comments on commit 6b1a7fc

Please sign in to comment.