123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #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
|