Update vagrant completion with "plugin" subcommand
This subcommand was added in Vagrant 1.1.
This commit is contained in:
parent
9cbd2b6762
commit
92238046cc
46
src/_vagrant
46
src/_vagrant
|
@ -12,6 +12,7 @@
|
|||
# -------
|
||||
#
|
||||
# * Nikita Fedyashev (https://github.com/nfedyashev)
|
||||
# * Mark Cornick (https://github.com/markcornick)
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
|
@ -24,6 +25,7 @@ _1st_arguments=(
|
|||
'help:[TASK] Describe available tasks or one specific task'
|
||||
'init:[box_name] [box_url] Initializes current folder for Vagrant usage'
|
||||
'package:Packages a vagrant environment for distribution'
|
||||
'plugin:Manage plugins'
|
||||
'provision:Run the provisioner'
|
||||
'reload:Reload the vagrant environment'
|
||||
'resume:Resumes a suspend vagrant environment'
|
||||
|
@ -44,12 +46,20 @@ _box_arguments=(
|
|||
'repackage:NAME Repackage an installed box into a `.box` file.'
|
||||
)
|
||||
|
||||
local -a _plugin_arguments
|
||||
_plugin_arguments=(
|
||||
'install:NAME Install a plugin to the system'
|
||||
'license:NAME LICENSE_FILE Add a license for an installed plugin'
|
||||
'list:Lists all installed plugins'
|
||||
'uninstall:NAME Uninstall a plugin from the system'
|
||||
)
|
||||
|
||||
__task_list ()
|
||||
{
|
||||
local expl
|
||||
local -a tasks
|
||||
|
||||
tasks=(box destroy halt init package provision reload resume ssh ssh_config status suspend up version)
|
||||
tasks=(box destroy halt init package plugin provision reload resume ssh ssh_config status suspend up version)
|
||||
|
||||
_wanted tasks expl 'help' compadd $tasks
|
||||
}
|
||||
|
@ -59,6 +69,11 @@ __box_list ()
|
|||
_wanted application expl 'command' compadd $(command ls -1 $HOME/.vagrant/boxes 2>/dev/null| sed -e 's/ /\\ /g')
|
||||
}
|
||||
|
||||
__plugin_list ()
|
||||
{
|
||||
_wanted application expl 'command' compadd $(command vagrant plugin list 2>/dev/null| cut -d' ' -f1)
|
||||
}
|
||||
|
||||
__vm_list ()
|
||||
{
|
||||
_wanted application expl 'command' compadd $(command grep Vagrantfile -oe '^[^#]*\.vm\.define *:\([a-zA-Z0-9]\+\)' 2>/dev/null | cut -d: -f2)
|
||||
|
@ -89,8 +104,33 @@ __vagrant-box ()
|
|||
esac
|
||||
}
|
||||
|
||||
__vagrant-plugin ()
|
||||
{
|
||||
local curcontext="$curcontext" state line
|
||||
local -A opt_args
|
||||
|
||||
_arguments -C \
|
||||
':command:->command' \
|
||||
'*::options:->options'
|
||||
|
||||
case $state in
|
||||
(command)
|
||||
_describe -t commands "gem subcommand" _plugin_arguments
|
||||
return
|
||||
;;
|
||||
|
||||
(options)
|
||||
case $line[1] in
|
||||
(license)
|
||||
_arguments ':feature:__plugin_list' '*:file:_files'
|
||||
;;
|
||||
(uninstall)
|
||||
_arguments ':feature:__plugin_list'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
local expl
|
||||
local -a boxes installed_boxes
|
||||
|
@ -117,6 +157,10 @@ case $state in
|
|||
(box)
|
||||
__vagrant-box
|
||||
;;
|
||||
|
||||
(plugin)
|
||||
__vagrant-plugin
|
||||
;;
|
||||
(up|provision|package|destroy|reload|ssh|halt|resume|status)
|
||||
_arguments ':feature:__vm_list'
|
||||
esac
|
||||
|
|
Loading…
Reference in New Issue