From 57e7542f7312676f77f7aa86a6edd1f3ef34c667 Mon Sep 17 00:00:00 2001 From: Jesse Scott Date: Fri, 21 Aug 2020 11:46:10 -0700 Subject: [PATCH] Add tab completion script for zsh This commit adds a new tab completion script for zsh. It also fixes the completion script for bash to work with ABS backends. --- extras/completions/floaty.bash | 2 +- extras/completions/floaty.zsh | 37 ++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 extras/completions/floaty.zsh diff --git a/extras/completions/floaty.bash b/extras/completions/floaty.bash index 5adee75..0c18c49 100644 --- a/extras/completions/floaty.bash +++ b/extras/completions/floaty.bash @@ -21,7 +21,7 @@ _vmfloaty() COMPREPLY=( $(compgen -W "${_vmfloaty_avail_templates}" -- "${cur}") ) elif [[ $hostname_subcommands =~ (^| )$prev($| ) ]] ; then - _vmfloaty_active_hostnames=$(floaty list --active 2>/dev/null | grep '^-' | cut -d' ' -f2) + _vmfloaty_active_hostnames=$(floaty list --active --hostnameonly 2>/dev/null) COMPREPLY=( $(compgen -W "${_vmfloaty_active_hostnames}" -- "${cur}") ) else COMPREPLY=( $(compgen -W "${subcommands}" -- "${cur}") ) diff --git a/extras/completions/floaty.zsh b/extras/completions/floaty.zsh new file mode 100644 index 0000000..77edf17 --- /dev/null +++ b/extras/completions/floaty.zsh @@ -0,0 +1,37 @@ +_floaty() +{ + local line subcommands template_subcommands hostname_subcommands + + subcommands="delete get help list modify query revert snapshot ssh status summary token" + + template_subcommands=("get" "ssh") + hostname_subcommands=("delete" "modify" "query" "revert" "snapshot") + + _arguments -C \ + "1: :(${subcommands})" \ + "*::arg:->args" + + if ((template_subcommands[(Ie)$line[1]])); then + _floaty_template_sub + elif ((hostname_subcommands[(Ie)$line[1]])); then + _floaty_hostname_sub + fi +} + +_floaty_template_sub() +{ + if [[ -z "$_vmfloaty_avail_templates" ]] ; then + _vmfloaty_avail_templates=$(floaty list 2>/dev/null) + fi + + _arguments "1: :(${_vmfloaty_avail_templates})" +} + +_floaty_hostname_sub() +{ + _vmfloaty_active_hostnames=$(floaty list --active --hostnameonly 2>/dev/null) + + _arguments "1: :(${_vmfloaty_active_hostnames})" +} + +compdef _floaty floaty