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.
		
		
		
		
		
			
		
			
				
					
					
						
							106 lines
						
					
					
						
							2.8 KiB
						
					
					
				
			
		
		
	
	
							106 lines
						
					
					
						
							2.8 KiB
						
					
					
				| #compdef tugboat | |
| #autoload | |
|  | |
| # Tugboat zsh autocompletion | |
|  | |
|  | |
| local -a _commands | |
| _commands=( | |
|   'add-key:[NAME] Upload an ssh public key.' | |
|   'authorize:Authorize a DigitalOcean account with tugboat.' | |
|   'create:[NAME] Create a droplet.' | |
|   'destroy:[FUZZY_NAME] Destroy a droplet.' | |
|   'destroy_image:[FUZZY_NAME] Destroy an image.' | |
|   'droplets:Retrieve a list of your droplets.' | |
|   'halt:[FUZZY_NAME] Shutdown a droplet.' | |
|   'help:[COMMAND] Describe commands or a specific command.' | |
|   'images:Retrieve a list of your images.' | |
|   'info:[FUZZY_NAME] [OPTIONS] Show a droplets information.' | |
|   'info_image:[FUZZY_NAME] [OPTIONS] Show an images information.' | |
|   'keys:Show available SSH keys.' | |
|   'password-reset:[FUZZY_NAME] Reset root password.' | |
|   'rebuild:[FUZZY_NAME] [IMAGE_NAME] Rebuild a droplet.' | |
|   'regions:Show regions.' | |
|   'resize:[FUZZY_NAME -s, --size=N] Resize a droplet.' | |
|   'restart:[FUZZY_NAME] Restart a droplet.' | |
|   'sizes:Show available droplet sizes.' | |
|   'snapshot:[SNAPSHOT_NAME] [FUZZY_NAME] [OPTIONS] Queue a snapshot of the droplet.' | |
|   'ssh:[FUZZY_NAME] SSH into a droplet.' | |
|   'start:[FUZZY_NAME] Start a droplet.' | |
|   'verify:Check your DigitalOcean credentials.' | |
|   'version:Show version.' | |
|   'wait:[FUZZY_NAME] Wait for a droplet to reach a state.' | |
| ) | |
|  | |
| local -a _create_arguments | |
| _create_arguments=( | |
|   '-s:[--size=N] The size_id of the droplet' | |
|   '-i:[--image=N] The image_id of the droplet' | |
|   '-r:[--region=N] The region_id of the droplet' | |
|   '-k:[--keys=KEYS] A comma separated list of SSH key ids to add to the droplet' | |
|   '-p:[--private-networking] Enable private networking on the droplet' | |
|   '-b:[--backups-enabled] Enable backups on the droplet' | |
|   '-q:[--quiet]' | |
| ) | |
|  | |
| __task_list () | |
| { | |
|   local expl | |
|   declare -a tasks | |
|  | |
|   arguments=(add-key authorize create destroy destroy_image droplets halt help images info info_image keys password-reset rebuild regions resize restart sizes snapshot ssh start verify version wait) | |
|  | |
|   _wanted tasks expl 'help' compadd $arguments | |
| } | |
|  | |
| __droplets_list () | |
| { | |
|     _wanted application expl 'command' compadd $(command tugboat droplets | cut -d " " -f1) | |
| } | |
|  | |
| __tugboat-create () | |
| { | |
|     local curcontext="$curcontext" state line | |
|     typeset -A opt_args | |
|  | |
|     _arguments -C \ | |
|         ':command:->command' \ | |
|         '*::options:->options' | |
|  | |
|     case $state in | |
|         (command) | |
|             _describe -t commands "gem subcommand" _create_arguments | |
|             return | |
|         ;; | |
|     esac | |
| } | |
|  | |
| local curcontext="$curcontext" state line | |
| typeset -A opt_args | |
|  | |
| _arguments -C \ | |
|     ':command:->command' \ | |
|     '*::options:->options' | |
|  | |
| case $state in | |
|   (command) | |
|     _describe -t commands "gem subcommand" _commands | |
|     return | |
|   ;; | |
|  | |
|   (options) | |
|     case $line[1] in | |
|       (help) | |
|         _arguments ':feature:__task_list' | |
|       ;; | |
|  | |
|       (ssh) | |
|         _arguments ':feature:__droplets_list' | |
|       ;; | |
|  | |
|       (create) | |
|         _arguments ':feature:__tugboat-create' | |
|       ;; | |
|     esac | |
|   ;; | |
| esac
 | |
| 
 |