You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							133 lines
						
					
					
						
							4.1 KiB
						
					
					
				
			
		
		
	
	
							133 lines
						
					
					
						
							4.1 KiB
						
					
					
				| #compdef vagrant | |
| #autoload | |
|  | |
| # vagrant zsh completion | |
|  | |
| local -a _1st_arguments | |
| _1st_arguments=( | |
|     'box:Box commands' | |
|     'cloud:Manages everything related to Vagrant Cloud' | |
|     'connect:Connects to a remotely shared Vagrant environment' | |
|     'destroy:Destroys the vagrant environment' | |
|     'docker-logs:Outputs the logs from the Docker container' | |
|     'docker-run:Run a one-off command in the context of a container' | |
|     'global-status:Reports the status of all active Vagrant environments on the system' | |
|     'halt:Halts the currently running vagrant environment' | |
|     'help:Shows the help for a subcommand' | |
|     'init:[box_name] [box_url] Initializes current folder for Vagrant usage' | |
|     'list-commands:Outputs all available Vagrant subcommands, even non-primary ones' | |
|     'login:Authenticates against a Vagrant Cloud server to access protected boxes' | |
|     'package:Packages a vagrant environment for distribution' | |
|     'plugin:Plugin commands' | |
|     'port:Displays information about guest port mappings' | |
|     'provision:Run the provisioner' | |
|     'push:Deploys code in this environment to a configured destination' | |
|     'rdp:Connects to machine via RDP' | |
|     'reload:Reload the vagrant environment' | |
|     'resume:Resumes a suspended vagrant environment' | |
|     'rsync:Syncs rsync synced folders to remote machine' | |
|     'rsync-auto:Syncs rsync synced folders automatically when files change' | |
|     'share:Shares your Vagrant environment with anyone in the world' | |
|     'snapshot:Manage snapshots with the guest machine' | |
|     'ssh:SSH into the currently running environment' | |
|     'ssh-config:Outputs .ssh/config valid syntax for connecting to this environment via ssh' | |
|     'status:Shows the status of the current Vagrant environment' | |
|     'suspend:Suspends the currently running vagrant environment' | |
|     'snapshot:Used to manage snapshots with the guest machine' | |
|     'up:Creates the vagrant environment' | |
|     'validate:Validates the Vagrantfile' | |
|     'version:Prints current and latest Vagrant version' | |
|     '--help:[TASK] Describe available tasks or one specific task' | |
|     '--version:Prints the Vagrant version information' | |
| ) | |
|  | |
| local -a _box_arguments | |
| _box_arguments=( | |
|     'add:ADDRESS Adds a box to the system' | |
|     'help:COMMAND List subcommands' | |
|     'list:Lists all installed boxes' | |
|     'outdated:Checks if a box has newer version' | |
|     'remove:NAME Removes a box from the system' | |
|     'repackage:NAME PROVIDER VERSION Repackages an installed box into a `.box` file' | |
|     'update:Updates box to a newer version, if available' | |
| ) | |
|  | |
| __task_list () | |
| { | |
|     local expl | |
|     declare -a tasks | |
|  | |
|     tasks=(box destroy halt init package port provision reload resume ssh ssh_config status suspend up version) | |
|  | |
|     _wanted tasks expl 'help' compadd $tasks | |
| } | |
|  | |
| __box_list () | |
| { | |
|     _wanted application expl 'command' compadd $(command vagrant box list | sed -e 's/ /\\ /g') | |
| } | |
|  | |
| __vm_list () | |
| { | |
|     _wanted application expl 'command' compadd $(command grep Vagrantfile -oe '^[^#]*\.vm\.define *[:"]\([a-zA-Z0-9_-]\+\)' 2>/dev/null | awk '{print substr($2, 2)}') | |
|     _wanted application expl 'command' compadd $(command ls .vagrant/machines/ 2>/dev/null) | |
| } | |
|  | |
| __vagrant-box () | |
| { | |
|     local curcontext="$curcontext" state line | |
|     typeset -A opt_args | |
|  | |
|     _arguments -C \ | |
|         ':command:->command' \ | |
|         '*::options:->options' | |
|  | |
|    case $state in | |
|        (command) | |
|            _describe -t commands "vagrant subcommand" _box_arguments | |
|            return | |
|        ;; | |
|  | |
|        (options) | |
|            case $line[1] in | |
|                (repackage|remove) | |
|                    _arguments ':feature:__box_list' | |
|                ;; | |
|            esac | |
|        ;; | |
|     esac | |
| } | |
|  | |
|  | |
|  | |
|  | |
| local expl | |
| local -a boxes installed_boxes | |
|  | |
| local curcontext="$curcontext" state line | |
| typeset -A opt_args | |
|  | |
| _arguments -C \ | |
|     ':command:->command' \ | |
|     '*::options:->options' | |
|  | |
| case $state in | |
|   (command) | |
|       _describe -t commands "vagrant subcommand" _1st_arguments | |
|       return | |
|   ;; | |
|  | |
|   (options) | |
|     case $line[1] in | |
|       (help) | |
|          _arguments ':feature:__task_list' | |
|       ;; | |
|  | |
|       (box) | |
|           __vagrant-box | |
|       ;; | |
|       (up|provision|port|package|destroy|reload|ssh|ssh-config|halt|resume|status) | |
|       _arguments ':feature:__vm_list' | |
|     esac | |
|   ;; | |
| esac
 | |
| 
 |