mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2024-05-11 05:55:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			107 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#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
 |