From f742baf73ccb70c94952717b5152f97a176eef3a Mon Sep 17 00:00:00 2001 From: Renato dos Santos Date: Sat, 23 May 2020 17:35:48 -0300 Subject: [PATCH] Add plugin for LXD autocomplete (#7457) --- plugins/lxd/README.md | 9 +++++++++ plugins/lxd/lxd.plugin.zsh | 26 ++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 plugins/lxd/README.md create mode 100644 plugins/lxd/lxd.plugin.zsh diff --git a/plugins/lxd/README.md b/plugins/lxd/README.md new file mode 100644 index 000000000..cea45e31c --- /dev/null +++ b/plugins/lxd/README.md @@ -0,0 +1,9 @@ +# lxd + +This plugin provides completion for [lxd](https://linuxcontainers.org/lxd/), as well as aliases +for frequent lxc commands. + +To use it add `lxd` to the plugins array in your zshrc file. + +```zsh +plugins=(... lxd) diff --git a/plugins/lxd/lxd.plugin.zsh b/plugins/lxd/lxd.plugin.zsh new file mode 100644 index 000000000..a6a074252 --- /dev/null +++ b/plugins/lxd/lxd.plugin.zsh @@ -0,0 +1,26 @@ +_lxc_get_command_list () { + $_comp_command1 | sed "1,/Available Commands/d" | awk '/^[ \t]*[a-z]+/ { print $1 }' +} + +_lxc_get_subcommand_list () { + $_comp_command1 ${words[2]} | sed "1,/Available Commands/d" | awk '/^[ \t]*[a-z]+/ { print $1 }' +} + +_lxc () { + local curcontext="$curcontext" state line + typeset -A opt_args + _arguments \ + '1: :->command'\ + '*: :->args' + + case $state in + command) + compadd $(_lxc_get_command_list) + ;; + *) + compadd $(_lxc_get_subcommand_list) + ;; + esac +} + +compdef _lxc lxc