739 lines
26 KiB
Plaintext
739 lines
26 KiB
Plaintext
#compdef _vagrant vagrant
|
|
|
|
# ZSH completion for Vagrant
|
|
#
|
|
# To use this completion add this to ~/.zshrc
|
|
# fpath=(/path/to/this/dir $fpath)
|
|
# compinit
|
|
#
|
|
# For development reload the function after making changes
|
|
# unfunction _vagrant && autoload -U _vagrant
|
|
|
|
|
|
__box_list ()
|
|
{
|
|
_wanted application expl 'command' compadd $(command vagrant box list | awk '{print $1}' )
|
|
}
|
|
|
|
|
|
__plugin_list ()
|
|
{
|
|
_wanted application expl 'command' compadd $(command vagrant plugin list | awk '{print $1}')
|
|
}
|
|
|
|
|
|
function _vagrant () {
|
|
|
|
local -a sub_commands && sub_commands=(
|
|
'autocomplete:manages autocomplete installation on host'
|
|
'box:manages boxes: installation, removal, etc.'
|
|
'cloud:manages everything related to Vagrant Cloud'
|
|
'destroy:stops and deletes all traces of the vagrant machine'
|
|
'global-status:outputs status Vagrant environments for this user'
|
|
'halt:stops the vagrant machine'
|
|
'help:shows the help for a subcommand'
|
|
'init:initializes a new Vagrant environment by creating a Vagrantfile'
|
|
'login:'
|
|
'package:packages a running vagrant environment into a box'
|
|
'plugin:manages plugins: install, uninstall, update, etc.'
|
|
'port:displays information about guest port mappings'
|
|
'powershell:connects to machine via powershell remoting'
|
|
'provision:provisions the vagrant machine'
|
|
'push:deploys code in this environment to a configured destination'
|
|
'rdp:connects to machine via RDP'
|
|
'reload:restarts vagrant machine, loads new Vagrantfile configuration'
|
|
'resume:resume a suspended vagrant machine'
|
|
'snapshot:manages snapshots: saving, restoring, etc.'
|
|
'ssh:connects to machine via SSH'
|
|
'ssh-config:outputs OpenSSH valid configuration to connect to the machine'
|
|
'status:outputs status of the vagrant machine'
|
|
'suspend:suspends the machine'
|
|
'up:starts and provisions the vagrant environment'
|
|
'upload:upload to machine via communicator'
|
|
'validate:validates the Vagrantfile'
|
|
'version:prints current and latest Vagrant version'
|
|
'winrm:executes commands on a machine via WinRM'
|
|
'winrm-config:outputs WinRM configuration to connect to the machine'
|
|
)
|
|
|
|
local -a cloud_arguments && cloud_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a destroy_arguments && destroy_arguments=(
|
|
'--(no-)parallel=[Enable or disable parallelism if provider supports it (automatically enables force)]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a global_status_arguments && global_status_arguments=(
|
|
'--prune=[Prune invalid entries.]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a halt_arguments && halt_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a help_arguments && help_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a init_arguments && init_arguments=(
|
|
'--box-version=[Version of the box to add]'
|
|
'--output=[Output path for the box. _ for stdout]'
|
|
'--template=[Path to custom Vagrantfile template]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a login_arguments && login_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a package_arguments && package_arguments=(
|
|
'--base=[Name of a VM in VirtualBox to package as a base box (VirtualBox Only)]'
|
|
'--output=[Name of the file to output]'
|
|
'--include=[Comma separated additional files to package with the box]'
|
|
'--vagrantfile=[Vagrantfile to package with the box]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a port_arguments && port_arguments=(
|
|
'--guest=[Output the host port that maps to the given guest port]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a powershell_arguments && powershell_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a provision_arguments && provision_arguments=(
|
|
'--provision-with=[Enable only certain provisioners, by type or by name.]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a push_arguments && push_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a rdp_arguments && rdp_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a reload_arguments && reload_arguments=(
|
|
'--(no-)provision=[Enable or disable provisioning]'
|
|
'--provision-with=[Enable only certain provisioners, by type or by name.]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a resume_arguments && resume_arguments=(
|
|
'--(no-)provision=[Enable or disable provisioning]'
|
|
'--provision-with=[Enable only certain provisioners, by type or by name.]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a ssh_arguments && ssh_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a ssh_config_arguments && ssh_config_arguments=(
|
|
'--host=[Name the host for the config]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a status_arguments && status_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a suspend_arguments && suspend_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a up_arguments && up_arguments=(
|
|
'--(no-)provision=[Enable or disable provisioning]'
|
|
'--provision-with=[Enable only certain provisioners, by type or by name.]'
|
|
'--(no-)destroy-on-error=[Destroy machine if any fatal error happens (default to true)]'
|
|
'--(no-)parallel=[Enable or disable parallelism if provider supports it]'
|
|
'--provider=[Back the machine with a specific provider]'
|
|
'--(no-)install-provider=[If possible, install the provider if it isnt installed]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a upload_arguments && upload_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a validate_arguments && validate_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a version_arguments && version_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a winrm_arguments && winrm_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a winrm_config_arguments && winrm_config_arguments=(
|
|
'--host=[Name the host for the config]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
|
|
|
|
_arguments -C ':command:->command' '*::options:->options'
|
|
|
|
case $state in
|
|
(command)
|
|
_describe -t commands 'command' sub_commands
|
|
return
|
|
;;
|
|
|
|
(options)
|
|
case $line[1] in
|
|
autocomplete)
|
|
__vagrant-autocomplete ;;
|
|
box)
|
|
__vagrant-box ;;
|
|
cloud)
|
|
_arguments -s -S : $cloud_arguments ;;
|
|
destroy)
|
|
_arguments -s -S : $destroy_arguments ;;
|
|
global-status)
|
|
_arguments -s -S : $global_status_arguments ;;
|
|
halt)
|
|
_arguments -s -S : $halt_arguments ;;
|
|
help)
|
|
_arguments -s -S : $help_arguments ;;
|
|
init)
|
|
_arguments -s -S : $init_arguments ;;
|
|
login)
|
|
_arguments -s -S : $login_arguments ;;
|
|
package)
|
|
_arguments -s -S : $package_arguments ;;
|
|
plugin)
|
|
__vagrant-plugin ;;
|
|
port)
|
|
_arguments -s -S : $port_arguments ;;
|
|
powershell)
|
|
_arguments -s -S : $powershell_arguments ;;
|
|
provision)
|
|
_arguments -s -S : $provision_arguments ;;
|
|
push)
|
|
_arguments -s -S : $push_arguments ;;
|
|
rdp)
|
|
_arguments -s -S : $rdp_arguments ;;
|
|
reload)
|
|
_arguments -s -S : $reload_arguments ;;
|
|
resume)
|
|
_arguments -s -S : $resume_arguments ;;
|
|
snapshot)
|
|
__vagrant-snapshot ;;
|
|
ssh)
|
|
_arguments -s -S : $ssh_arguments ;;
|
|
ssh-config)
|
|
_arguments -s -S : $ssh_config_arguments ;;
|
|
status)
|
|
_arguments -s -S : $status_arguments ;;
|
|
suspend)
|
|
_arguments -s -S : $suspend_arguments ;;
|
|
up)
|
|
_arguments -s -S : $up_arguments ;;
|
|
upload)
|
|
_arguments -s -S : $upload_arguments ;;
|
|
validate)
|
|
_arguments -s -S : $validate_arguments ;;
|
|
version)
|
|
_arguments -s -S : $version_arguments ;;
|
|
winrm)
|
|
_arguments -s -S : $winrm_arguments ;;
|
|
winrm-config)
|
|
_arguments -s -S : $winrm_config_arguments ;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
}
|
|
|
|
function __vagrant-box () {
|
|
|
|
local -a sub_commands && sub_commands=(
|
|
'add:add'
|
|
'list:list'
|
|
'outdated:outdated'
|
|
'prune:prune'
|
|
'remove:remove'
|
|
'repackage:repackage'
|
|
'update:update'
|
|
)
|
|
|
|
local -a add_arguments && add_arguments=(
|
|
'--insecure=[Do not validate SSL certificates]'
|
|
'--cacert=[CA certificate for SSL download]'
|
|
'--capath=[CA certificate directory for SSL download]'
|
|
'--cert=[A client SSL cert, if needed]'
|
|
'--location-trusted=[Trust Location header from HTTP redirects and use the same credentials for subsequent urls as for the initial one]'
|
|
'--provider=[Provider the box should satisfy]'
|
|
'--box-version=[Constrain version of the added box]'
|
|
'--checksum=[Checksum for the box]'
|
|
'--checksum-type=[Checksum type (md5, sha1, sha256)]'
|
|
'--name=[Name of the box]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a list_arguments && list_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a outdated_arguments && outdated_arguments=(
|
|
'--global=[Check all boxes installed]'
|
|
'--insecure=[Do not validate SSL certificates]'
|
|
'--cacert=[CA certificate for SSL download]'
|
|
'--capath=[CA certificate directory for SSL download]'
|
|
'--cert=[A client SSL cert, if needed]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a prune_arguments && prune_arguments=(
|
|
'--name=[The specific box name to check for outdated versions.]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a remove_arguments && remove_arguments=(
|
|
'--provider=[The specific provider type for the box to remove]'
|
|
'--box-version=[The specific version of the box to remove]'
|
|
'--all=[Remove all available versions of the box]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a repackage_arguments && repackage_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a update_arguments && update_arguments=(
|
|
'--box=[__box flag.]'
|
|
'--box=[Update a specific box]'
|
|
'--provider=[Update box with specific provider]'
|
|
'--insecure=[Do not validate SSL certificates]'
|
|
'--cacert=[CA certificate for SSL download]'
|
|
'--capath=[CA certificate directory for SSL download]'
|
|
'--cert=[A client SSL cert, if needed]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
|
|
|
|
_arguments -C ':command:->command' '*::options:->options'
|
|
|
|
case $state in
|
|
(command)
|
|
_describe -t commands 'command' sub_commands
|
|
return
|
|
;;
|
|
|
|
(options)
|
|
case $line[1] in
|
|
add)
|
|
_arguments -s -S : $add_arguments ;;
|
|
list)
|
|
_arguments -s -S : $list_arguments ;;
|
|
outdated)
|
|
_arguments -s -S : $outdated_arguments ;;
|
|
prune)
|
|
_arguments -s -S : $prune_arguments ;;
|
|
remove)
|
|
_arguments -s -S : $remove_arguments ':feature:__box_list' ;;
|
|
repackage)
|
|
_arguments -s -S : $repackage_arguments ':feature:__box_list' ;;
|
|
update)
|
|
_arguments -s -S : $update_arguments ':feature:__box_list' ;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
}
|
|
|
|
function __vagrant-snapshot () {
|
|
|
|
local -a sub_commands && sub_commands=(
|
|
'delete:delete'
|
|
'list:list'
|
|
'pop:pop'
|
|
'push:push'
|
|
'restore:restore'
|
|
'save:save'
|
|
)
|
|
|
|
local -a delete_arguments && delete_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a list_arguments && list_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a pop_arguments && pop_arguments=(
|
|
'--(no-)provision=[Enable or disable provisioning]'
|
|
'--provision-with=[Enable only certain provisioners, by type or by name.]'
|
|
'--no-delete=[Dont delete the snapshot after the restore]'
|
|
'--no-start=[Dont start the snapshot after the restore]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a push_arguments && push_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a restore_arguments && restore_arguments=(
|
|
'--(no-)provision=[Enable or disable provisioning]'
|
|
'--provision-with=[Enable only certain provisioners, by type or by name.]'
|
|
'--no-start=[Dont start the snapshot after the restore]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a save_arguments && save_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
|
|
|
|
_arguments -C ':command:->command' '*::options:->options'
|
|
|
|
case $state in
|
|
(command)
|
|
_describe -t commands 'command' sub_commands
|
|
return
|
|
;;
|
|
|
|
(options)
|
|
case $line[1] in
|
|
delete)
|
|
_arguments -s -S : $delete_arguments ;;
|
|
list)
|
|
_arguments -s -S : $list_arguments ;;
|
|
pop)
|
|
_arguments -s -S : $pop_arguments ;;
|
|
push)
|
|
_arguments -s -S : $push_arguments ;;
|
|
restore)
|
|
_arguments -s -S : $restore_arguments ;;
|
|
save)
|
|
_arguments -s -S : $save_arguments ;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
}
|
|
|
|
function __vagrant-plugin () {
|
|
|
|
local -a sub_commands && sub_commands=(
|
|
'expunge:expunge'
|
|
'install:install'
|
|
'license:license'
|
|
'list:list'
|
|
'repair:repair'
|
|
'uninstall:uninstall'
|
|
'update:update'
|
|
)
|
|
|
|
local -a expunge_arguments && expunge_arguments=(
|
|
'--force=[Do not prompt for confirmation]'
|
|
'--local=[Include plugins from local project for expunge]'
|
|
'--local-only=[Only expunge local project plugins]'
|
|
'--global-only=[Only expunge global plugins]'
|
|
'--reinstall=[Reinstall current plugins after expunge]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a install_arguments && install_arguments=(
|
|
'--entry-point=[The name of the entry point file for loading the plugin.]'
|
|
'--plugin-clean-sources=[Remove all plugin sources defined so far (including defaults)]'
|
|
'--plugin-source=[__plugin_source PLUGIN_SOURCE]'
|
|
'--plugin-version=[__plugin_version PLUGIN_VERSION]'
|
|
'--local=[Install plugin for local project only]'
|
|
'--verbose=[Enable verbose output for plugin installation]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a license_arguments && license_arguments=(
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a list_arguments && list_arguments=(
|
|
'--local=[Include local project plugins]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a repair_arguments && repair_arguments=(
|
|
'--local=[Repair plugins in local project]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a uninstall_arguments && uninstall_arguments=(
|
|
'--local=[Remove plugin from local project]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
local -a update_arguments && update_arguments=(
|
|
'--local=[Update plugin in local project]'
|
|
'--(no-)color=[Enable or disable color output]'
|
|
'--machine-readable=[Enable machine readable output]'
|
|
'--debug=[Enable debug output]'
|
|
'--timestamp=[Enable timestamps on log output]'
|
|
'--debug-timestamp=[Enable debug output with timestamps]'
|
|
'--no-tty=[Enable non_interactive output]'
|
|
)
|
|
|
|
|
|
|
|
_arguments -C ':command:->command' '*::options:->options'
|
|
|
|
case $state in
|
|
(command)
|
|
_describe -t commands 'command' sub_commands
|
|
return
|
|
;;
|
|
|
|
(options)
|
|
case $line[1] in
|
|
expunge)
|
|
_arguments -s -S : $expunge_arguments ;;
|
|
install)
|
|
_arguments -s -S : $install_arguments ;;
|
|
license)
|
|
_arguments -s -S : $license_arguments ;;
|
|
list)
|
|
_arguments -s -S : $list_arguments ;;
|
|
repair)
|
|
_arguments -s -S : $repair_arguments ':feature:__plugin_list' ;;
|
|
uninstall)
|
|
_arguments -s -S : $uninstall_arguments ':feature:__plugin_list' ;;
|
|
update)
|
|
_arguments -s -S : $update_arguments ':feature:__plugin_list' ;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
}
|