Skip to content

Instantly share code, notes, and snippets.

@yufengwng
Created March 29, 2017 00:20
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yufengwng/146d3fb7d62b23698444825da0f03f3c to your computer and use it in GitHub Desktop.
Save yufengwng/146d3fb7d62b23698444825da0f03f3c to your computer and use it in GitHub Desktop.
ZSH completion file for doctl.
# ZSH completion script for doctl.
#
# This takes bach completion and converts it to support zsh.
# Inspired by [kubectl][kc] and [opencompose][oc], the bash
# part is from [@andewsomething][as-gist].
#
# [kc]: https://github.com/kubernetes/kubernetes/blob/9dec47d/pkg/kubectl/cmd/completion.go
# [oc]: https://github.com/redhat-developer/opencompose/blob/master/pkg/cmd/completion.go
# [as-gist]: https://gist.github.com/andrewsomething/7ba993a7f7897936c6946ffed2f1edc6
__doctl_bash_source() {
alias shopt=':'
alias _expand=_bash_expand
alias _complete=_bash_comp
emulate -L sh
setopt kshglob noshglob braceexpand
source "$@"
}
__doctl_type() {
# -t is not supported by zsh
if [ "$1" == "-t" ]; then
shift
# fake Bash 4 to disable "complete -o nospace". Instead
# "compopt +-o nospace" is used in the code to toggle trailing
# spaces. We don't support that, but leave trailing spaces on
# all the time
if [ "$1" = "__doctl_compopt" ]; then
echo builtin
return 0
fi
fi
type "$@"
}
__doctl_compgen() {
local completions w
completions=( $(compgen "$@") ) || return $?
# filter by given word as prefix
while [[ "$1" = -* && "$1" != -- ]]; do
shift
shift
done
if [[ "$1" == -- ]]; then
shift
fi
for w in "${completions[@]}"; do
if [[ "${w}" = "$1"* ]]; then
echo "${w}"
fi
done
}
__doctl_compopt() {
true # don't do anything. Not supported by bashcompinit in zsh
}
__doctl_declare() {
if [ "$1" == "-F" ]; then
whence -w "$@"
else
builtin declare "$@"
fi
}
__doctl_ltrim_colon_completions()
{
if [[ "$1" == *:* && "$COMP_WORDBREAKS" == *:* ]]; then
# Remove colon-word prefix from COMPREPLY items
local colon_word=${1%${1##*:}}
local i=${#COMPREPLY[*]}
while [[ $((--i)) -ge 0 ]]; do
COMPREPLY[$i]=${COMPREPLY[$i]#"$colon_word"}
done
fi
}
__doctl_get_comp_words_by_ref() {
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[${COMP_CWORD}-1]}"
words=("${COMP_WORDS[@]}")
cword=("${COMP_CWORD[@]}")
}
__doctl_filedir() {
local RET OLD_IFS w qw
__debug "_filedir $@ cur=$cur"
if [[ "$1" = \~* ]]; then
# somehow does not work. Maybe, zsh does not call this at all
eval echo "$1"
return 0
fi
OLD_IFS="$IFS"
IFS=$'\n'
if [ "$1" = "-d" ]; then
shift
RET=( $(compgen -d) )
else
RET=( $(compgen -f) )
fi
IFS="$OLD_IFS"
IFS="," __debug "RET=${RET[@]} len=${#RET[@]}"
for w in ${RET[@]}; do
if [[ ! "${w}" = "${cur}"* ]]; then
continue
fi
if eval "[[ \"\${w}\" = *.$1 || -d \"\${w}\" ]]"; then
qw="$(__doctl_quote "${w}")"
if [ -d "${w}" ]; then
COMPREPLY+=("${qw}/")
else
COMPREPLY+=("${qw}")
fi
fi
done
}
__doctl_quote() {
if [[ $1 == \'* || $1 == \"* ]]; then
# Leave out first character
printf %q "${1:1}"
else
printf %q "$1"
fi
}
autoload -U +X bashcompinit && bashcompinit
# use word boundary patterns for BSD or GNU sed
LWORD='[[:<:]]'
RWORD='[[:>:]]'
if sed --help 2>&1 | grep -q GNU; then
LWORD='\<'
RWORD='\>'
fi
__doctl_convert_bash_to_zsh() {
sed \
-e 's/declare -F/whence -w/' \
-e 's/local \([a-zA-Z0-9_]*\)=/local \1; \1=/' \
-e 's/flags+=("\(--.*\)=")/flags+=("\1"); two_word_flags+=("\1")/' \
-e 's/must_have_one_flag+=("\(--.*\)=")/must_have_one_flag+=("\1")/' \
-e "s/${LWORD}_filedir${RWORD}/__doctl_filedir/g" \
-e "s/${LWORD}_get_comp_words_by_ref${RWORD}/__doctl_get_comp_words_by_ref/g" \
-e "s/${LWORD}__ltrim_colon_completions${RWORD}/__doctl_ltrim_colon_completions/g" \
-e "s/${LWORD}compgen${RWORD}/__doctl_compgen/g" \
-e "s/${LWORD}compopt${RWORD}/__doctl_compopt/g" \
-e "s/${LWORD}declare${RWORD}/__doctl_declare/g" \
-e "s/\\\$(type${RWORD}/\$(__doctl_type/g" \
<<'BASH_COMPLETION_EOF'
# bash completion for doctl -*- shell-script -*-
__debug()
{
if [[ -n ${BASH_COMP_DEBUG_FILE} ]]; then
echo "$*" >> "${BASH_COMP_DEBUG_FILE}"
fi
}
# Homebrew on Macs have version 1.3 of bash-completion which doesn't include
# _init_completion. This is a very minimal version of that function.
__my_init_completion()
{
COMPREPLY=()
_get_comp_words_by_ref cur prev words cword
}
__index_of_word()
{
local w word=$1
shift
index=0
for w in "$@"; do
[[ $w = "$word" ]] && return
index=$((index+1))
done
index=-1
}
__contains_word()
{
local w word=$1; shift
for w in "$@"; do
[[ $w = "$word" ]] && return
done
return 1
}
__handle_reply()
{
__debug "${FUNCNAME}"
case $cur in
-*)
if [[ $(type -t compopt) = "builtin" ]]; then
compopt -o nospace
fi
local allflags
if [ ${#must_have_one_flag[@]} -ne 0 ]; then
allflags=("${must_have_one_flag[@]}")
else
allflags=("${flags[*]} ${two_word_flags[*]}")
fi
COMPREPLY=( $(compgen -W "${allflags[*]}" -- "$cur") )
if [[ $(type -t compopt) = "builtin" ]]; then
[[ $COMPREPLY == *= ]] || compopt +o nospace
fi
return 0;
;;
esac
# check if we are handling a flag with special work handling
local index
__index_of_word "${prev}" "${flags_with_completion[@]}"
if [[ ${index} -ge 0 ]]; then
${flags_completion[${index}]}
return
fi
# we are parsing a flag and don't have a special handler, no completion
if [[ ${cur} != "${words[cword]}" ]]; then
return
fi
local completions
if [[ ${#must_have_one_flag[@]} -ne 0 ]]; then
completions=("${must_have_one_flag[@]}")
elif [[ ${#must_have_one_noun[@]} -ne 0 ]]; then
completions=("${must_have_one_noun[@]}")
else
completions=("${commands[@]}")
fi
COMPREPLY=( $(compgen -W "${completions[*]}" -- "$cur") )
if [[ ${#COMPREPLY[@]} -eq 0 ]]; then
declare -F __custom_func >/dev/null && __custom_func
fi
__ltrim_colon_completions "$cur"
}
# The arguments should be in the form "ext1|ext2|extn"
__handle_filename_extension_flag()
{
local ext="$1"
_filedir "@(${ext})"
}
__handle_subdirs_in_dir_flag()
{
local dir="$1"
pushd "${dir}" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1
}
__handle_flag()
{
__debug "${FUNCNAME}: c is $c words[c] is ${words[c]}"
# if a command required a flag, and we found it, unset must_have_one_flag()
local flagname=${words[c]}
local flagvalue
# if the word contained an =
if [[ ${words[c]} == *"="* ]]; then
flagvalue=${flagname#*=} # take in as flagvalue after the =
flagname=${flagname%=*} # strip everything after the =
flagname="${flagname}=" # but put the = back
fi
__debug "${FUNCNAME}: looking for ${flagname}"
if __contains_word "${flagname}" "${must_have_one_flag[@]}"; then
must_have_one_flag=()
fi
# keep flag value with flagname as flaghash
if [ ${flagvalue} ] ; then
flaghash[${flagname}]=${flagvalue}
elif [ ${words[ $((c+1)) ]} ] ; then
flaghash[${flagname}]=${words[ $((c+1)) ]}
else
flaghash[${flagname}]="true" # pad "true" for bool flag
fi
# skip the argument to a two word flag
if __contains_word "${words[c]}" "${two_word_flags[@]}"; then
c=$((c+1))
# if we are looking for a flags value, don't show commands
if [[ $c -eq $cword ]]; then
commands=()
fi
fi
c=$((c+1))
}
__handle_noun()
{
__debug "${FUNCNAME}: c is $c words[c] is ${words[c]}"
if __contains_word "${words[c]}" "${must_have_one_noun[@]}"; then
must_have_one_noun=()
fi
nouns+=("${words[c]}")
c=$((c+1))
}
__handle_command()
{
__debug "${FUNCNAME}: c is $c words[c] is ${words[c]}"
local next_command
if [[ -n ${last_command} ]]; then
next_command="_${last_command}_${words[c]//:/__}"
else
if [[ $c -eq 0 ]]; then
next_command="_$(basename ${words[c]//:/__})"
else
next_command="_${words[c]//:/__}"
fi
fi
c=$((c+1))
__debug "${FUNCNAME}: looking for ${next_command}"
declare -F $next_command >/dev/null && $next_command
}
__handle_word()
{
if [[ $c -ge $cword ]]; then
__handle_reply
return
fi
__debug "${FUNCNAME}: c is $c words[c] is ${words[c]}"
if [[ "${words[c]}" == -* ]]; then
__handle_flag
elif __contains_word "${words[c]}" "${commands[@]}"; then
__handle_command
elif [[ $c -eq 0 ]] && __contains_word "$(basename ${words[c]})" "${commands[@]}"; then
__handle_command
else
__handle_noun
fi
__handle_word
}
_doctl_account_get()
{
last_command="doctl_account_get"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_account_ratelimit()
{
last_command="doctl_account_ratelimit"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_account()
{
last_command="doctl_account"
commands=()
commands+=("get")
commands+=("ratelimit")
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_auth_login()
{
last_command="doctl_auth_login"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_auth()
{
last_command="doctl_auth"
commands=()
commands+=("login")
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_action_get()
{
last_command="doctl_compute_action_get"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_action_list()
{
last_command="doctl_compute_action_list"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--action-type=")
flags+=("--after=")
flags+=("--before=")
flags+=("--format=")
flags+=("--no-header")
flags+=("--region=")
flags+=("--resource-type=")
flags+=("--status=")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_action_wait()
{
last_command="doctl_compute_action_wait"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--poll-timeout=")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_action()
{
last_command="doctl_compute_action"
commands=()
commands+=("get")
commands+=("list")
commands+=("wait")
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action_get()
{
last_command="doctl_compute_droplet-action_get"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--action-id=")
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action_disable-backups()
{
last_command="doctl_compute_droplet-action_disable-backups"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action_reboot()
{
last_command="doctl_compute_droplet-action_reboot"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action_power-cycle()
{
last_command="doctl_compute_droplet-action_power-cycle"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action_shutdown()
{
last_command="doctl_compute_droplet-action_shutdown"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action_power-off()
{
last_command="doctl_compute_droplet-action_power-off"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action_power-on()
{
last_command="doctl_compute_droplet-action_power-on"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action_power-reset()
{
last_command="doctl_compute_droplet-action_power-reset"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action_enable-ipv6()
{
last_command="doctl_compute_droplet-action_enable-ipv6"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action_enable-private-networking()
{
last_command="doctl_compute_droplet-action_enable-private-networking"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action_upgrade()
{
last_command="doctl_compute_droplet-action_upgrade"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action_restore()
{
last_command="doctl_compute_droplet-action_restore"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--image-id=")
flags+=("--no-header")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action_resize()
{
last_command="doctl_compute_droplet-action_resize"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--resize-disk")
flags+=("--size=")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action_rebuild()
{
last_command="doctl_compute_droplet-action_rebuild"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--image-id=")
flags+=("--no-header")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action_rename()
{
last_command="doctl_compute_droplet-action_rename"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--droplet-name=")
flags+=("--format=")
flags+=("--no-header")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action_change-kernel()
{
last_command="doctl_compute_droplet-action_change-kernel"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--kernel-id=")
flags+=("--no-header")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action_snapshot()
{
last_command="doctl_compute_droplet-action_snapshot"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--snapshot-name=")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet-action()
{
last_command="doctl_compute_droplet-action"
commands=()
commands+=("get")
commands+=("disable-backups")
commands+=("reboot")
commands+=("power-cycle")
commands+=("shutdown")
commands+=("power-off")
commands+=("power-on")
commands+=("power-reset")
commands+=("enable-ipv6")
commands+=("enable-private-networking")
commands+=("upgrade")
commands+=("restore")
commands+=("resize")
commands+=("rebuild")
commands+=("rename")
commands+=("change-kernel")
commands+=("snapshot")
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet_actions()
{
last_command="doctl_compute_droplet_actions"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet_backups()
{
last_command="doctl_compute_droplet_backups"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet_create()
{
last_command="doctl_compute_droplet_create"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--enable-backups")
flags+=("--enable-ipv6")
flags+=("--enable-private-networking")
flags+=("--format=")
flags+=("--image=")
flags+=("--no-header")
flags+=("--region=")
flags+=("--size=")
flags+=("--ssh-keys=")
flags+=("--user-data=")
flags+=("--user-data-file=")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet_delete()
{
last_command="doctl_compute_droplet_delete"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet_get()
{
last_command="doctl_compute_droplet_get"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet_kernels()
{
last_command="doctl_compute_droplet_kernels"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet_list()
{
last_command="doctl_compute_droplet_list"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--region=")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet_neighbors()
{
last_command="doctl_compute_droplet_neighbors"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet_snapshots()
{
last_command="doctl_compute_droplet_snapshots"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_droplet()
{
last_command="doctl_compute_droplet"
commands=()
commands+=("actions")
commands+=("backups")
commands+=("create")
commands+=("delete")
commands+=("get")
commands+=("kernels")
commands+=("list")
commands+=("neighbors")
commands+=("snapshots")
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_domain_create()
{
last_command="doctl_compute_domain_create"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--ip-address=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_domain_list()
{
last_command="doctl_compute_domain_list"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_domain_get()
{
last_command="doctl_compute_domain_get"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_domain_delete()
{
last_command="doctl_compute_domain_delete"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_domain_records_list()
{
last_command="doctl_compute_domain_records_list"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--domain-name=")
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_domain_records_create()
{
last_command="doctl_compute_domain_records_create"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--record-data=")
flags+=("--record-name=")
flags+=("--record-port=")
flags+=("--record-priority=")
flags+=("--record-type=")
flags+=("--record-weight=")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_domain_records_delete()
{
last_command="doctl_compute_domain_records_delete"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_domain_records_update()
{
last_command="doctl_compute_domain_records_update"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--record-data=")
flags+=("--record-id=")
flags+=("--record-name=")
flags+=("--record-port=")
flags+=("--record-priority=")
flags+=("--record-type=")
flags+=("--record-weight=")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_domain_records()
{
last_command="doctl_compute_domain_records"
commands=()
commands+=("list")
commands+=("create")
commands+=("delete")
commands+=("update")
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_domain()
{
last_command="doctl_compute_domain"
commands=()
commands+=("create")
commands+=("list")
commands+=("get")
commands+=("delete")
commands+=("records")
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_floating-ip_create()
{
last_command="doctl_compute_floating-ip_create"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--droplet-id=")
flags+=("--format=")
flags+=("--no-header")
flags+=("--region=")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_floating-ip_get()
{
last_command="doctl_compute_floating-ip_get"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_floating-ip_delete()
{
last_command="doctl_compute_floating-ip_delete"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_floating-ip_list()
{
last_command="doctl_compute_floating-ip_list"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--region=")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_floating-ip()
{
last_command="doctl_compute_floating-ip"
commands=()
commands+=("create")
commands+=("get")
commands+=("delete")
commands+=("list")
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_floating-ip-action_get()
{
last_command="doctl_compute_floating-ip-action_get"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_floating-ip-action_assign()
{
last_command="doctl_compute_floating-ip-action_assign"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_floating-ip-action_unassign()
{
last_command="doctl_compute_floating-ip-action_unassign"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_floating-ip-action()
{
last_command="doctl_compute_floating-ip-action"
commands=()
commands+=("get")
commands+=("assign")
commands+=("unassign")
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_image_list()
{
last_command="doctl_compute_image_list"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--public")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_image_list-distribution()
{
last_command="doctl_compute_image_list-distribution"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--public")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_image_list-application()
{
last_command="doctl_compute_image_list-application"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--public")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_image_list-user()
{
last_command="doctl_compute_image_list-user"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--public")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_image_get()
{
last_command="doctl_compute_image_get"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_image_update()
{
last_command="doctl_compute_image_update"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--image-name=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_image_delete()
{
last_command="doctl_compute_image_delete"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_image()
{
last_command="doctl_compute_image"
commands=()
commands+=("list")
commands+=("list-distribution")
commands+=("list-application")
commands+=("list-user")
commands+=("get")
commands+=("update")
commands+=("delete")
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_image-action_get()
{
last_command="doctl_compute_image-action_get"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--action-id=")
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_image-action_transfer()
{
last_command="doctl_compute_image-action_transfer"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--region=")
flags+=("--wait")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_image-action()
{
last_command="doctl_compute_image-action"
commands=()
commands+=("get")
commands+=("transfer")
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_plugin_list()
{
last_command="doctl_compute_plugin_list"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_plugin_run()
{
last_command="doctl_compute_plugin_run"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_plugin()
{
last_command="doctl_compute_plugin"
commands=()
commands+=("list")
commands+=("run")
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_region_list()
{
last_command="doctl_compute_region_list"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_region()
{
last_command="doctl_compute_region"
commands=()
commands+=("list")
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_size_list()
{
last_command="doctl_compute_size_list"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_size()
{
last_command="doctl_compute_size"
commands=()
commands+=("list")
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_ssh-key_list()
{
last_command="doctl_compute_ssh-key_list"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_ssh-key_get()
{
last_command="doctl_compute_ssh-key_get"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_ssh-key_create()
{
last_command="doctl_compute_ssh-key_create"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--public-key=")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_ssh-key_import()
{
last_command="doctl_compute_ssh-key_import"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--no-header")
flags+=("--public-key-file=")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_ssh-key_delete()
{
last_command="doctl_compute_ssh-key_delete"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_ssh-key_update()
{
last_command="doctl_compute_ssh-key_update"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
flags+=("--key-name=")
flags+=("--no-header")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_ssh-key()
{
last_command="doctl_compute_ssh-key"
commands=()
commands+=("list")
commands+=("get")
commands+=("create")
commands+=("import")
commands+=("delete")
commands+=("update")
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute_ssh()
{
last_command="doctl_compute_ssh"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--ssh-key-path=")
flags+=("--ssh-port=")
flags+=("--ssh-user=")
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_compute()
{
last_command="doctl_compute"
commands=()
commands+=("action")
commands+=("droplet-action")
commands+=("droplet")
commands+=("domain")
commands+=("floating-ip")
commands+=("floating-ip-action")
commands+=("image")
commands+=("image-action")
commands+=("plugin")
commands+=("region")
commands+=("size")
commands+=("ssh-key")
commands+=("ssh")
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl_version()
{
last_command="doctl_version"
commands=()
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
_doctl()
{
last_command="doctl"
commands=()
commands+=("account")
commands+=("auth")
commands+=("compute")
commands+=("version")
flags=()
two_word_flags=()
flags_with_completion=()
flags_completion=()
flags+=("--access-token=")
two_word_flags+=("-t")
flags+=("--output=")
two_word_flags+=("-o")
flags+=("--trace")
flags+=("--verbose")
flags+=("-v")
must_have_one_flag=()
must_have_one_noun=()
}
__start_doctl()
{
local cur prev words cword
declare -A flaghash 2>/dev/null || :
if declare -F _init_completion >/dev/null 2>&1; then
_init_completion -s || return
else
__my_init_completion || return
fi
local c=0
local flags=()
local two_word_flags=()
local flags_with_completion=()
local flags_completion=()
local commands=("doctl")
local must_have_one_flag=()
local must_have_one_noun=()
local last_command
local nouns=()
__handle_word
}
if [[ $(type -t compopt) = "builtin" ]]; then
complete -o default -F __start_doctl doctl
else
complete -o default -o nospace -F __start_doctl doctl
fi
# ex: ts=4 sw=4 et filetype=sh
BASH_COMPLETION_EOF
}
__doctl_bash_source <(__doctl_convert_bash_to_zsh)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment