summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Caffee <allanc@aweber.com>2011-02-07 15:09:06 -0500
committerAllan Caffee <allanc@aweber.com>2011-02-07 15:37:18 -0500
commit8aec32b48bb88e980150a43586e7e02b9156e165 (patch)
tree0b56a459465eae688dfa04469f85e06b7de881c9
parent01b0366f3e27cf30f3882870100f14625fc267d1 (diff)
downloadzsh-8aec32b48bb88e980150a43586e7e02b9156e165.tar.gz
zsh-8aec32b48bb88e980150a43586e7e02b9156e165.tar.bz2
zsh-8aec32b48bb88e980150a43586e7e02b9156e165.zip
Add vagrant completion for individual VMs
For multi-VM setups some commands take the name of a virtual machine. Read the Vagrantfile and offer suggestions.
-rw-r--r--plugins/vagrant/_vagrant7
1 files changed, 7 insertions, 0 deletions
diff --git a/plugins/vagrant/_vagrant b/plugins/vagrant/_vagrant
index 483b29c53..9bed1e3c6 100644
--- a/plugins/vagrant/_vagrant
+++ b/plugins/vagrant/_vagrant
@@ -46,6 +46,11 @@ __box_list ()
_wanted application expl 'command' compadd $(command ls -1 $HOME/.vagrant/boxes 2>/dev/null| sed -e 's/ /\\ /g')
}
+__vm_list ()
+{
+ _wanted application expl 'command' compadd $(command grep Vagrantfile -oe '^[^#]*\.vm\.define *:\([a-zA-Z0-9]\+\)' 2>/dev/null | cut -d: -f2)
+}
+
__vagrant-box ()
{
local curcontext="$curcontext" state line
@@ -99,6 +104,8 @@ case $state in
(box)
__vagrant-box
;;
+ (up|provision|package|destroy|reload|ssh|halt|resume|status)
+ _arguments ':feature:__vm_list'
esac
;;
esac