| 
									
										
										
										
											2010-11-15 14:45:04 -05:00
										 |  |  | #compdef vagrant  | 
					
						
							|  |  |  | #autoload | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 15:18:58 -05:00
										 |  |  | # vagrant zsh completion | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | local -a _1st_arguments | 
					
						
							|  |  |  | _1st_arguments=( | 
					
						
							|  |  |  |     'box:Box commands' | 
					
						
							|  |  |  |     'destroy:Destroys the vagrant environment' | 
					
						
							|  |  |  |     'halt:Halts the currently running vagrant environment' | 
					
						
							|  |  |  |     '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' | 
					
						
							|  |  |  |     'provision:Run the provisioner' | 
					
						
							|  |  |  |     'reload:Reload the vagrant environment' | 
					
						
							|  |  |  |     'resume:Resumes a suspend vagrant environment' | 
					
						
							|  |  |  |     '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' | 
					
						
							|  |  |  |     'up:Creates the vagrant environment' | 
					
						
							|  |  |  |     'version:Prints the Vagrant version information' | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | local -a _box_arguments | 
					
						
							|  |  |  | _box_arguments=( | 
					
						
							|  |  |  |     'add:NAME URI Add a box to the system' | 
					
						
							|  |  |  |     'help:COMMAND Describe subcommands or one specific subcommand' | 
					
						
							|  |  |  |     'list:Lists all installed boxes' | 
					
						
							|  |  |  |     'remove:NAME Remove a box from the system' | 
					
						
							|  |  |  |     'repackage:NAME Repackage an installed box into a `.box` file.' | 
					
						
							|  |  |  | ) | 
					
						
							| 
									
										
										
										
											2010-11-15 14:45:04 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | __task_list () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2010-11-15 14:56:01 -05:00
										 |  |  |     local expl | 
					
						
							|  |  |  |     declare -a tasks | 
					
						
							| 
									
										
										
										
											2010-11-15 14:45:04 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 14:56:01 -05:00
										 |  |  |     tasks=(box destroy halt init package provision reload resume ssh ssh_config status suspend up version) | 
					
						
							| 
									
										
										
										
											2010-11-15 14:45:04 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 14:56:01 -05:00
										 |  |  |     _wanted tasks expl 'help' compadd $tasks | 
					
						
							| 
									
										
										
										
											2010-11-15 14:45:04 -05:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __box_list () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2010-11-15 14:56:01 -05:00
										 |  |  |     _wanted application expl 'command' compadd $(command ls -1 $HOME/.vagrant/boxes 2>/dev/null| sed -e 's/ /\\ /g') | 
					
						
							| 
									
										
										
										
											2010-11-15 14:45:04 -05:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __vagrant-box () | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2010-11-15 14:56:01 -05:00
										 |  |  |     local curcontext="$curcontext" state line | 
					
						
							|  |  |  |     typeset -A opt_args | 
					
						
							| 
									
										
										
										
											2010-11-15 14:45:04 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 14:56:01 -05:00
										 |  |  |     _arguments -C \ | 
					
						
							|  |  |  |         ':command:->command' \ | 
					
						
							|  |  |  |         '*::options:->options' | 
					
						
							| 
									
										
										
										
											2010-11-15 14:45:04 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 14:56:01 -05:00
										 |  |  |    case $state in | 
					
						
							|  |  |  |        (command) | 
					
						
							|  |  |  |            _describe -t commands "gem subcommand" _box_arguments | 
					
						
							|  |  |  |            return | 
					
						
							|  |  |  |        ;; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |        (options) | 
					
						
							|  |  |  |            case $line[1] in | 
					
						
							|  |  |  |                (repackage|remove) | 
					
						
							| 
									
										
										
										
											2010-11-15 15:18:58 -05:00
										 |  |  |                    _arguments ':feature:__box_list'  | 
					
						
							| 
									
										
										
										
											2010-11-15 14:56:01 -05:00
										 |  |  |                ;; | 
					
						
							|  |  |  |            esac | 
					
						
							|  |  |  |        ;; | 
					
						
							|  |  |  |     esac | 
					
						
							| 
									
										
										
										
											2010-11-15 14:45:04 -05:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 15:18:58 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 14:45:04 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | local expl | 
					
						
							|  |  |  | local -a boxes installed_boxes | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 14:56:01 -05:00
										 |  |  | local curcontext="$curcontext" state line | 
					
						
							|  |  |  | typeset -A opt_args | 
					
						
							| 
									
										
										
										
											2010-11-15 14:45:04 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 14:56:01 -05:00
										 |  |  | _arguments -C \ | 
					
						
							|  |  |  |     ':command:->command' \ | 
					
						
							|  |  |  |     '*::options:->options' | 
					
						
							| 
									
										
										
										
											2010-11-15 14:45:04 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | case $state in | 
					
						
							|  |  |  |   (command) | 
					
						
							| 
									
										
										
										
											2010-11-15 14:56:01 -05:00
										 |  |  |       _describe -t commands "gem subcommand" _1st_arguments | 
					
						
							|  |  |  |       return | 
					
						
							| 
									
										
										
										
											2010-11-15 14:45:04 -05:00
										 |  |  |   ;; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   (options) | 
					
						
							|  |  |  |     case $line[1] in | 
					
						
							|  |  |  |       (help) | 
					
						
							| 
									
										
										
										
											2010-11-15 15:18:58 -05:00
										 |  |  |          _arguments ':feature:__task_list'  | 
					
						
							| 
									
										
										
										
											2010-11-15 14:45:04 -05:00
										 |  |  |       ;; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       (box) | 
					
						
							| 
									
										
										
										
											2010-11-15 14:56:01 -05:00
										 |  |  |           __vagrant-box | 
					
						
							| 
									
										
										
										
											2010-11-15 14:45:04 -05:00
										 |  |  |       ;; | 
					
						
							|  |  |  |     esac | 
					
						
							|  |  |  |   ;; | 
					
						
							|  |  |  | esac |