summaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
authorBrahmajit Das <listout@listout.xyz>2025-10-09 00:50:26 +0000
committerBrahmajit Das <listout@listout.xyz>2025-10-09 00:50:26 +0000
commitb142bdd3d613289564a73807725bf07650c13ff1 (patch)
tree4eb36972f8fc2ab8f9fd8364599c318e4c0fd17c /.config
parentfa932312855fea3419b3b3980dac8d2afe970081 (diff)
downloaddots-b142bdd3d613289564a73807725bf07650c13ff1.tar.gz
zsh: completion: cleanup fpath
Signed-off-by: Brahmajit Das <listout@listout.xyz>
Diffstat (limited to '.config')
-rw-r--r--.config/zsh/completion.zsh17
-rw-r--r--.config/zsh/completion/_lxc974
-rw-r--r--.config/zsh/completion/_lxd47
3 files changed, 1 insertions, 1037 deletions
diff --git a/.config/zsh/completion.zsh b/.config/zsh/completion.zsh
index ed57020..9661ecc 100644
--- a/.config/zsh/completion.zsh
+++ b/.config/zsh/completion.zsh
@@ -60,7 +60,7 @@ zstyle ':completion:*:cd:*' ignore-parents parent pwd
setopt auto_cd
### Complete from middle of filename
-zstyle ':completion:*' matcher-list '' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' '+l:|=* r:|=*'
+setopt complete_in_word
### auto rehash
zstyle ':completion:*' rehash true
@@ -70,19 +70,4 @@ zstyle ':completion:*' menu select list-colors ${(s.:.)LS_COLORS}
### completion and prompt init
autoload -Uz compinit colors vcs_info
-fpath+=(~/.zfunc $fpath)
-fpath+=(~/.config/zsh/completion $fpath)
compinit
-__pip() {{
- compadd $( COMP_WORDS="$words[*]" \
- COMP_CWORD=$((CURRENT-1)) \
- PIP_AUTO_COMPLETE=1 $words[1] 2>/dev/null )
- }}
-if [[ $zsh_eval_context[-1] == loadautofunc ]]; then
- # autoload from fpath, call function directly
- __pip "$@"
-else
- # eval/source/. command, register function for later
- compdef __pip -P pip
- compdef __pip -P pip3
-fi
diff --git a/.config/zsh/completion/_lxc b/.config/zsh/completion/_lxc
deleted file mode 100644
index d2a6ccb..0000000
--- a/.config/zsh/completion/_lxc
+++ /dev/null
@@ -1,974 +0,0 @@
-#compdef lxc
-
-# _lxc
-#
-# Copyright (c) 2017 endaaman
-#
-# This software may be modified and distributed under the terms
-# of the MIT license. See the LICENSE file for details.
-
-_lxc() {
- local context curcontext=$curcontext state line
- local selected_container
- declare -A opt_args
-
- local opt_container_control=(
- '--all[Run command against all containers]' \
- '--stateful[Store the container state (only for stop)]' \
- '--stateless[Ignore the container state (only for start)]' \
- )
-
- _arguments -C \
- '--all[Print less common commands]' \
- '--version[Show client version]' \
- '1: :__lxc_commands' \
- '*:: :->args'
- case $state in
- (args)
- case $words[1] in
- (alias)
- case $words[2] in
- (remove|rename)
- _arguments -C \
- '2:containers:__lxc_aliases'
- ;;
- esac
- _arguments -C \
- '1: :__lxc_alias_commands'
- ;;
- (cluster)
- _arguments -C \
- '1: :__lxc_cluster_commands'
- ;;
- (config)
- case $words[2] in
- (get)
- _arguments -C \
- '2:containers:__lxc_containers_all'
- ;;
- (set)
- _arguments -C \
- '2:containers:__lxc_containers_all'
- ;;
- (unset)
- _arguments -C \
- '2:containers:__lxc_containers_all'
- ;;
- (show)
- _arguments -C \
- '2:containers:__lxc_containers_all'
- ;;
- (edit)
- _arguments -C \
- '2:containers:__lxc_containers_all'
- ;;
- (metadata)
- case $words[3] in
- (show)
- _arguments -C \
- '3:containers:__lxc_containers_all'
- ;;
- (edit)
- _arguments -C \
- '3:containers:__lxc_containers_all'
- ;;
- esac
- _arguments -C \
- '2: :__lxc_config_metadata_commands'
- ;;
- (template)
- case $words[3] in
- (list)
- _arguments -C \
- '3:containers:__lxc_containers_all'
- ;;
- (show|edit|delete)
- if [ $#words[@] -gt 4 ]; then
- _arguments -C \
- "*:Templates:($(__get_lxc_templates_by_container $words[4]))"
- fi
- _arguments -C \
- '3:containers:__lxc_containers_all'
- ;;
- (create)
- _arguments -C \
- '3:containers:__lxc_containers_all'
- ;;
- esac
- _arguments -C \
- '2: :__lxc_config_template_commands'
- ;;
- (device)
- case $words[3] in
- (add)
- # lxc config device add <container> <name> <type> <key1>=<value1>
- # 3 4 5 6
- if [ $#words[@] -gt 6 ]; then
- _arguments -C \
- "*:key-values:_sep_parts '$(__get_lxc_keys_by_device $words[6])' = '($(ls))'"
- fi
- _arguments -C \
- '3:containers:__lxc_containers_all' \
- '4: :_files' \
- '5:device type:__lxc_device_types'
- ;;
- (get|unset)
- if [ $#words[@] -eq 6 ]; then
- local type=$(lxc config device get $words[4] $words[5] type)
- _arguments -C "*:key-values:($(__get_lxc_keys_by_device $type))"
- fi
- selected_container=$words[4]
- _arguments -C \
- '3:containers:__lxc_containers_all' \
- '4:devices:__lxc_devices_by_container' \
- ;;
- # lxc config device set <container> <name> <key1>=<value1>
- # 3 4 5 6
- (set)
- if [ $#words[@] -eq 6 ]; then
- local type=$(lxc config device get $words[4] $words[5] type)
- _arguments -C \
- "*:key-values:_sep_parts '$(__get_lxc_keys_by_device $type)' = ($(ls))" \
- '7:files:_files'
- fi
- selected_container=$words[4]
- _arguments -C \
- '3:containers:__lxc_containers_all' \
- '4:devices:__lxc_devices_by_container' \
- ;;
- (override)
- if [ $#words[@] -gt 5 ]; then
- local type=$(lxc config device get $words[4] $words[5] type)
- _arguments -C \
- "*:key-values:_sep_parts '$(__get_lxc_keys_by_device $type)' ="
- fi
- selected_container=$words[4]
- _arguments -C \
- '3:containers:__lxc_containers_all' \
- '4:devices:__lxc_devices_by_container' \
- ;;
- (show|list)
- _arguments -C \
- '3:containers:__lxc_containers_all' \
- ;;
- (remove)
- selected_container=$words[4]
- _arguments -C \
- '3:containers:__lxc_containers_all' \
- '4:devices:__lxc_devices_by_container' \
- ;;
- esac
- _arguments -C \
- '2: :__lxc_config_device_commands'
- ;;
- (trust)
- _arguments -C \
- '2: :__lxc_config_trust_commands'
- case $words[3] in
- (list|add|remove)
- # complete remote
- ;;
- esac
- ;;
- esac
- _arguments -C \
- '1: :__lxc_config_commands' \
- '--expanded[Show the expanded configuration]'
- ;;
- (console)
- _arguments -C \
- '1:containers:__lxc_containers_running'
- ;;
- (copy)
- _arguments -C \
- {-c,--config}'[Config key/value to apply to the new instance]' \
- {-d,--device}'[New key/value to apply to a specific device]' \
- {-e,--ephemeral}'[Ephemeral instance]' \
- '--instance-only[Copy the instance without its snapshots]' \
- '--mode[Transfer mode. One of pull (default), push or relay (default "pull")]' \
- '--no-rofiles[Create the instance with no profiles applied]' \
- {-p,--profile}'[Profile to apply to the new instance]' \
- '--refresh[Perform an incremental copy]' \
- '--stateless[Copy a stateful instance stateless]' \
- {-s,--storage}'[Storage pool name]' \
- '--target[Cluster member name]' \
- '--target-project[Copy to a project different from the source]'
- ;;
- (delete)
- _arguments -C \
- '*:containers:__lxc_containers_stopped'
- ;;
- (exec)
- _arguments -C \
- '1:containers:__lxc_containers_running' \
- '--cwd[Directory to run the command in (default /root)]' \
- {-n,--disable-stdin}'[Disable stdin (reads from /dev/null)]' \
- '--env[Environment variable to set (e.g. HOME=/home/foo)]' \
- {-t,--force-interactive}'[Force pseudo-terminal allocation]' \
- {-T,--force-noninteractive}'[Disable pseudo-terminal allocation]' \
- '--group[Group ID to run the command as (default 0)]' \
- '--mode[Override the terminal mode (auto, interactive or non-interactive) (default "auto")]' \
- '--user[User ID to run the command as (default 0)]'
- ;;
- (export)
- _arguments -C \
- '--compression[Define a compression algorithm: for backup or none]' \
- '--instance-only[Whether or not to only backup the instance (without snapshots)]' \
- '--optimized-storage[Use storage driver optimized format (can only be restored on a similar pool)]'
- ;;
- (file)
- case $words[2] in
- (push)
- _arguments -C \
- '2:files:_files' \
- '3:containers:__lxc_containers_all'
- ;;
- (pull)
- _arguments -C \
- '2:containers:__lxc_containers_all' \
- '3:files:_files'
- ;;
- (edit)
- _arguments -C \
- '2:containers:__lxc_containers_all'
- ;;
- (delete)
- _arguments -C \
- '*:containers:__lxc_containers_all'
- ;;
- esac
- _arguments -C \
- '1: :__lxc_file_commands' \
- "--gid=[Set the file's gid on push]" \
- "--uid=[Set the file's uid on push]" \
- "--mode=[Set the file's perms on push]" \
- ''{-p,--create-dirs}'[Create any directories necessary]' \
- ''{-r,--recursive}'[Recursively push or pull files]'
- ;;
- (help)
- _arguments -C \
- '1: :__lxc_commands'
- ;;
- (image)
- case $words[2] in
- (alias)
- case $words[3] in
- (create)
- _arguments -C \
- '4: :__lxc_images_as_fingerprint'
- ;;
- (list)
- _arguments -C \
- '4: :()' \
- '--format=[Format (csv|json|table|yaml) (default "table")]:Format:(csv json table yaml)'
- ;;
- (delete|rename)
- _arguments -C \
- '3: :__lxc_images_as_alias'
- ;;
- esac
- _arguments -C \
- '2: :__lxc_image_alias_commands'
- ;;
- (delete|refresh)
- _arguments -C \
- '*: :__lxc_images_as_fingerprint'
- ;;
- (edit|show|info|export)
- _arguments -C \
- '2: :__lxc_images_as_fingerprint'
- ;;
- (copy)
- _arguments -C \
- '2: :__lxc_remotes'
- ;;
- (import)
- _arguments -C \
- '2: :_files'
- ;;
- (list)
- l="'Columns' 'l[Shortest image alias (and optionally number of other aliases)]' \
- 'L[Newline-separated list of all image aliases]' 'f[Fingerprint]' \
- 'p[Whether image is public]' 'd[Description]' 'a[Architecture]' \
- 's[Size]' 'u[Upload date]'"
- _arguments -C \
- '3: :()' \
- {-c,--columns=}"[Columns (default lfpdasu)]:Columns:_values -s '' $l" \
- '--format=[Format (csv|json|table|yaml) (default "table")]:Format:(csv json table yaml)'
- ;;
- esac
- _arguments -C \
- '1: :__lxc_image_commands'
- ;;
- (import)
- _arguments -C \
- '1: :_files' \
- {-s,--storage=}'[Storage pool name]'
- ;;
- (info)
- _arguments -C \
- '1:containers:__lxc_containers_all' \
- '--resources[Show the resources available to the server]' \
- "--show-log[Show the container's last 100 log lines?]" \
- '--target[Cluster member name]'
- ;;
- (launch|init)
- _arguments -C \
- '1: :__lxc_images' \
- {-c,--config=}'[Config key/value to apply to the new container (= map\[\])]' \
- '--console=[Immediately attach to the console]' \
- '--empty[Create an empty instance]' \
- {-e,--ephemeral}'[Ephemeral container]' \
- {-n,--network=}'[Network name]' \
- '--no-profiles[Create the instance with no profiles applied]' \
- {-p,--profile=}'[Profile to apply to the new container]' \
- {-s,--storage=}'[Storage pool name]' \
- '--target=[Node name]' \
- {-t,--type=}'[Instance type]' \
- '--vm[Create a virtual machine]'
- ;;
- (list)
- # c.f https://github.com/lxc/lxd/blob/master/lxc/list.go
- local _l="'Columns' '4[IPv4 address]' '6[IPv6 address]' 'a[Architecture]' 'b[Storage pool]' \
- 'c[Creation date]' 'd[Description]' 'l[Last used date]' 'n[Name]' 'N[Number of Processes]' \
- \"p[PID of the container's init process]\" 'P[Profiles]' 's[State]' \
- 'S[Number of snapshots]' 't[Type (persistent or ephemeral)]' \
- 'L[Location of the container (e.g. its cluster member)]'"
- _arguments -C \
- {-c,--columns=}"[Columns (default: ns46tSL)]:Columns:_values -s '' $_l" \
- '--fast[Fast mode (same as --columns=nsacPt)]' \
- '--format=[Format (csv|json|table|yaml) (default "table")]:Format:(csv json table yaml)' \
- '--no-alias[Ignore aliases when determining what command to run]'
- ;;
- (manpage)
- _arguments -C \
- '1:Directory to put manpage to:_files'
- ;;
- (monitor)
- _arguments -C \
- '1: :__lxc_containers_all' \
- '--loglevel=[Minimum level for log messages]:Log level:(info)' \
- '--pretty[Pretty rendering]' \
- '--type=[Event type to listen for]:Type:(lifecycle logging)'
- ;;
- (move)
- _arguments -C \
- {-c,--config}'[Config key/value to apply to the target instance]' \
- {-d,--device}'[New key/value to apply to a specific device]' \
- '--instance-only[Move the instance without its snapshots]' \
- '--mode{Transfer mode. One of pull (default), push or relay. (default "pull")}' \
- '--no-profiles[Unset all profiles on the target instance]' \
- {-p,--profile}'[Profile to apply to the target instance]' \
- --stateless'[Copy a stateful instance stateless]' \
- {-s,--storage}'[Storage pool name]' \
- '--target[Cluster member name]' \
- '--target-project[Copy to a project different from the source]'
- ;;
- (network)
- _arguments -C \
- '1: :__lxc_network_commands'
- ;;
- (operation)
- # TODO: complete operation items
- _arguments -C \
- '1: :__lxc_operation_commands'
- ;;
- (pause)
- _arguments -C \
- '1: :__lxc_containers_running' \
- '--all[Run command against all containers]'
- ;;
- (project)
- case $words[2] in
- (edit|delete|switch|rename|show|get|set)
- _arguments -C \
- '2: :__lxc_projects'
- ;;
- (list|ls)
- _arguments -C \
- '3: :()' \
- '--format=[Format (csv|json|table|yaml) (default "table")]:Format:(csv json table yaml)'
- ;;
- esac
- _arguments -C \
- '1: :__lxc_project_commands'
- ;;
- (profile)
- case $words[2] in
- (add)
- _arguments -C \
- '2: :__lxc_containers_all' \
- '3: :__lxc_profiles' \
- ;;
- (assign|apply)
- _arguments -C \
- '2: :__lxc_containers_all' \
- "3: :_values -s , Profiles $(__get_lxc_profiles)"
- ;;
- (copy|cp)
- _arguments -C \
- '2: :__lxc_profiles' \
- '3: :__lxc_profiles'
- ;;
- (delete|rm|edit|show)
- _arguments -C \
- '2: :__lxc_profiles'
- ;;
- (get|set|unset)
- # TODO: complete profile keys
- _arguments -C \
- '2: :__lxc_profiles'
- ;;
- (list|ls)
- # TODO: complete container profiles
- _arguments -C \
- '2: :__lxc_remotes'
- ;;
- (rename|mv)
- # TODO: complete container profiles
- _arguments -C \
- '2: :__lxc_profiles'
- ;;
- esac
- _arguments -C \
- '1: :__lxc_profile_commands'
- ;;
- (publish)
- # TODO: complete publish
- _arguments -C \
- '1: :__lxc_containers_all'
- ;;
- (query)
- _arguments -C \
- {-d,--data}'[Input data]' \
- '--raw[Print the raw response]' \
- {-X,--request}'[Action (defaults to GET) (default "GET")]' \
- '--wait[Wait for the operation to complete]'
- ;;
- (remote)
- case $words[2] in
- (set-default|set-url|rename|remove)
- _arguments -C \
- '2: :__lxc_remotes'
- ;;
- (add)
- _arguments -C \
- '2: :()' \
- '--accept-certificate[Accept certificate]' \
- '--auth-type=[Server authentication type (tls or macaroons)]:Auth type:(tls macaroons)' \
- '--password[Remote admin password]' \
- '--protocol=[Server protocol (lxd or simplestreams)]:Protocol:(tls macaroons)' \
- '--public[Public image server]'
- ;;
- esac
- _arguments -C \
- '1: :__lxc_remote_commands'
- ;;
- (rename)
- _arguments -C \
- '1:containers:__lxc_containers_stopped' \
- ;;
- (restart)
- _arguments -C \
- '*:containers:__lxc_containers_running' \
- {-f,--force}'[Force the container to shutdown]' \
- '--timeout[Time to wait for the container before killing it]' \
- $opt_container_control
- ;;
- (restore)
- _arguments -C \
- '1:containers:__lxc_containers_all' \
- '--stateful[Store the container state (only for stop)]'
- ;;
- (shell)
- _arguments -C \
- '1:containers:__lxc_containers_running' \
- '--cwd[Directory to run the command in (default /root)]' \
- {-n,--disable-stdin}'[Disable stdin (reads from /dev/null)]' \
- '--env[Environment variable to set (e.g. HOME=/home/foo)]' \
- {-t,--force-interactive}'[Force pseudo-terminal allocation]' \
- {-T,--force-noninteractive}'[Disable pseudo-terminal allocation]' \
- '--group[Group ID to run the command as (default 0)]' \
- '--mode[Override the terminal mode (auto, interactive or non-interactive) (default "auto")]' \
- '--user[User ID to run the command as (default 0)]'
- ;;
- (snapshot)
- _arguments -C \
- '1:containers:__lxc_containers_all'
- ;;
- (start)
- _arguments -C \
- '*:containers:__lxc_containers_stopped' \
- $opt_container_control
- ;;
- (stop)
- _arguments -C \
- '*:containers:__lxc_containers_running' \
- '--timeout[Time to wait for the container before killing it (= -1)]' \
- {-f,--force}'[Force the container to shutdown]' \
- $opt_container_control
- ;;
- (storage)
- case $words[2] in
- (delete|edit|get|info|set|unset)
- _arguments -C \
- '2: :__lxc_storages'
- ;;
- (volume)
- case $words[3] in
- (list)
- _arguments -C \
- '3: :__lxc_storages'
- ;;
- esac
- _arguments -C \
- '2: :__lxc_storage_volume_commands'
- ;;
- esac
- _arguments -C \
- '1: :__lxc_storage_commands'
- ;;
- (version)
- # nop
- ;;
- esac
- ;;
- esac
- _arguments -C -A '-*' \
- '*: :__lxc_global_flags'
- return 0
-}
-
-__lxc_global_flags() {
- local -a _l=(
- '--debug:Show all debug messages'
- '--force-local:Force using the local unix socket'
- {-h,--help}':Print help'
- '--project:Override the source project'
- {-q,--quiet}":Don't show progress information"
- {-v,--verbose}':Show all information messages'
- # '--version:Print version number'
- )
- _describe -o -t global_options 'global option' _l
-}
-
-__lxc_commands() {
- local -a _l=(
- 'alias:Manage command aliases'
- 'cluster:Manage cluster nodes'
- 'config:Change container or server configuration options'
- "console:Interact with the container's console device and log"
- 'copy:Copy containers within or in between LXD instances'
- 'delete:Delete containers and snapshots'
- 'exec:Execute commands in containers'
- 'export:Export instance backups'
- 'file:Manage files in containers'
- 'help:Help about any command'
- # 'finger:Check if the LXD server is alive' # old sub command
- 'image:Manipulate container images'
- 'import:Import instance backups'
- 'info:Show container or server information'
- 'init:Create containers from images'
- 'launch:Create and start containers from images'
- 'list:List the existing containers'
- 'manpage:Generate all the LXD manpages'
- 'monitor:Monitor a local or remote LXD server'
- 'move:Move containers within or in between LXD instances'
- 'network:Manage and attach containers to networks'
- 'operation:List, show and delete background operations'
- 'pause:Pause containers'
- 'profile:Manage container configuration profiles'
- 'project:Manage projects'
- 'publish:Publish containers as images'
- 'query:Send a raw query to LXD'
- 'remote:Manage the list of remote LXD servers'
- 'rename:Rename a container or snapshot'
- 'restart:Restart containers'
- 'restore:Restore containers from snapshots'
- 'snapshot:Create container snapshots'
- 'shell:Execute commands in instances'
- 'start:Start containers'
- 'stop:Stop containers'
- 'storage:Manage storage pools and volumes'
- 'version:Print the version number of this client tool'
- )
- _describe -t commands Commands _l
-}
-
-__lxc_alias_commands() {
- local -a _l=(
- 'add:Add a new alias <alias> pointing to <target>.'
- 'remove:Remove the alias <alias>.'
- 'list:List all the aliases.'
- 'rename:Rename remote <old alias> to <new alias>.'
- )
- _describe -t commands 'Alias commands' _l
-}
-
-__lxc_cluster_commands() {
- local -a _l=(
- 'edit:Edit cluster member configurations as YAML'
- 'enable:Enable clustering on a single non-clustered LXD server'
- 'list:List all the cluster members'
- 'remove:Remove a member from the cluster'
- 'rename:Rename a cluster member'
- 'show:Show details of a cluster member'
- )
- _describe -t commands 'Cluster commands' _l
-}
-
-__lxc_config_commands() {
- local -a _l=(
- 'get:Get container or server configuration key'
- 'set:Set container or server configuration key'
- 'unset:Unset container or server configuration key'
- 'show:Show container or server configuration'
- 'edit:Edit container or server configuration key'
- 'metadata:Container metadata'
- 'template:Container templates'
- 'device:Device management'
- 'trust:Client trust store management'
- )
- _describe -t commands 'Config commands' _l
-}
-
-__lxc_config_device_commands() {
- local -a _l=(
- 'add:Add a device to a container'
- 'get:Get a device property'
- 'set:Set a device property'
- 'unset:Unset a device property'
- 'override:Copy a profile inherited device into local container config'
- 'list:List devices for container'
- 'show:Show full device details for container'
- 'remove:Remove device from container'
- )
- _describe -t commands 'Config device commands' _l
-}
-
-
-__lxc_config_metadata_commands() {
- local -a _l
- _c=(
- 'show:Show the container metadata.yaml content'
- 'edit:Edit the container metadata.yaml, either by launching external editor or reading STDIN'
- )
- _describe -t commands 'Config metadata commands' _l
-}
-
-__lxc_config_template_commands() {
- local -a _l=(
- 'list:List the names of template files for a container.'
- 'show:Show the content of a template file for a container'
- 'create:Add an empty template file for a container'
- 'edit:Edit the content of a template file for a container, either by launching external editor or reading STDIN'
- 'delete:Delete a template file for a container'
-
- )
- _describe -t commands 'Config template commands' _l
-}
-
-__lxc_config_trust_commands() {
- local -a _l=(
- 'list:List all trusted certs'
- 'add:Add certfile.crt to trusted hosts'
- 'remove:Remove the cert from trusted hosts'
- )
- _describe -t commands 'Config trust commands' _l
-}
-
-__lxc_file_commands() {
- local -a _l=(
- 'pull:Pull file from container'
- 'push:Push file to container'
- 'delete:Delete files in containers.'
- 'edit:Edit files in containers using the default text editor'
- )
- _describe -t commands 'File commands' _l
-}
-
-__lxc_image_commands() {
- local -a _l=(
- 'copy:Copy an image from one LXD daemon to another over the network'
- 'delete:Delete one or more images from the LXD image store'
- 'import:Import images into the image store'
- 'export:Export an image from the LXD image store into a distributable tarball'
- 'info:Print everything LXD knows about a given image'
- 'list:List images in the LXD image store. Filters may be of the'
- 'show:Yaml output of the user modifiable properties of an image'
- 'edit:Edit image, either by launching external editor or reading STDIN'
- 'alias:Manage alias for image in the LXD image store'
- 'refresh:Refresh images'
- )
- _describe -t commands 'Image commands' _l
-}
-
-__lxc_image_alias_commands() {
- local -a _l=(
- 'create:Create aliases for existing images'
- 'rename:Rename aliases'
- 'delete:Delete image alias'
- 'list:List image aliases'
- )
- _describe -t commands 'Image alias commands' _l
-}
-
-__lxc_profile_commands() {
- local -a _l=(
- 'add:Add profiles to containers'
- 'assign:Assign sets of profiles to containers'
- 'copy:Copy profiles'
- 'create:Create profiles'
- 'delete:Delete profiles'
- 'device:Manage container devices'
- 'edit:Edit profile configurations as YAML'
- 'get:Get values for profile configuration keys'
- 'list:List profiles'
- 'remove:Remove profiles from containers'
- 'rename:Rename profiles'
- 'set:Set profile configuration keys'
- 'show:Show profile configurations'
- 'unset:Unset profile configuration keys'
- )
- _describe -t commands 'Profile commands' _l
-}
-
-__lxc_remote_commands() {
- local -a _l=(
- 'add:Add the remote <remote> at <url>'
- 'remove:Remove the remote <remote>'
- 'list:List all remotes'
- 'rename:Rename remote <old name> to <new name>'
- "set-url:Update <remote>'s url to <url>"
- 'set-default:Set the default remote'
- 'get-default:Print the default remote'
- )
- _describe -t commands 'Remote commands' _l
-}
-
-__lxc_network_commands() {
- local -a _l=(
- 'attach:Attach network interfaces to containers'
- 'attach-profile:Attach network interfaces to profiles'
- 'create:Create new networks'
- 'delete:Delete networks'
- 'detach:Detach network interfaces from containers'
- 'detach-profile:Detach network interfaces from profiles'
- 'edit:Edit network configurations as YAML'
- 'get:Get values for network configuration keys'
- 'info:Get runtime information on networks'
- 'list:List available networks'
- 'list-leases:List DHCP leases'
- 'rename:Rename networks'
- 'set:Set network configuration keys'
- 'show:Show network configurations'
- 'unset:Unset network configuration keys'
- )
- _describe -t commands 'Network commands' _l
-}
-
-__lxc_operation_commands() {
- local -a _l=(
- 'delete:Delete a background operation (will attempt to cancel)'
- 'list:List background operations'
- 'show:Show details on a background operation'
- )
- _describe -t commands 'Operation commands' _l
-}
-
-__lxc_storage_commands() {
- local -a _l=(
- 'create:Create storage pools'
- 'delete:Delete storage pools'
- 'edit:Edit storage pool configurations as YAML'
- 'get:Get values for storage pool configuration keys'
- 'info:Show useful information about storage pools'
- 'list:List available storage pools'
- 'set:Set storage pool configuration keys'
- 'show:Show storage pool configurations and resources'
- 'unset:Unset storage pool configuration keys'
- 'volume:Manage storage volumes'
- )
- _describe -t commands 'Storage commands' _l
-}
-
-__lxc_storage_volume_commands() {
- local -a _l=(
- 'attach:Attach new storage volumes to containers'
- 'attach-profile:Attach new storage volumes to profiles'
- 'copy:Copy storage volumes'
- 'create:Create new custom storage volumes'
- 'delete:Delete storage volumes'
- 'detach:Detach storage volumes from containers'
- 'detach-profile Detach storage volumes from profiles'
- 'edit:Edit storage volume configurations as YAML'
- 'get:Get values for storage volume configuration keys'
- 'list:List storage volumes'
- 'move:Move storage volumes between pools'
- 'rename:Rename storage volumes and storage volume snapshots'
- 'restore:Restore storage volume snapshots'
- 'set:Set storage volume configuration keys'
- 'show:Show storage volum configurations'
- 'snapshot:Snapshot storage volumes'
- 'unset:Unset storage volume configuration keys'
- )
- _describe -t commands 'Storage volume commands' _l
-}
-
-__lxc_project_commands() {
- local -a _l=(
- 'create:Create projects'
- 'delete:Delete projects'
- 'edit:Edit project configurations as YAML'
- 'get:Get values for project configuration keys'
- 'list:List projects'
- 'rename:Rename projects'
- 'set:Set project configuration keys'
- 'show:Show project options'
- 'switch:Switch the current project'
- 'unset:Unset project configuration keys'
- )
- _describe -t commands 'Project commands' _l
-}
-
-__lxc_devices_by_container () {
- local -a _l=(${(f)"$(_call_program devices lxc config device list $selected_container)"})
- _describe "Devices of $selected_container" _l
-}
-
-__lxc_list_columns () {
- local -a _l=(
- '4:IPv4 address'
- '6:IPv6 address'
- 'a:Architecture'
- 'b:Storage pool'
- 'c:Creation date'
- 'd:Description'
- 'l:Last used date'
- 'n:Name'
- 'N:Number of Processes'
- "p:PID of the container's init process"
- 'P:Profiles'
- 's:State'
- 'S:Number of snapshots'
- 't:Type (persistent or ephemeral)'
- 'L:Location of the container (e.g. its cluster member)'
- )
- _describe "Columns" _l
-}
-
-__lxc_device_types () {
- local -a _l=(
- 'none:Inheritance blocker'
- 'nic:Network interface'
- 'disk:Mountpoint inside the container'
- 'unix-char:Unix character device'
- 'unix-block:Unix block device'
- 'usb:USB device'
- 'gpu:GPU device'
- 'infiniband:Infiniband device'
- 'proxy:Proxy device'
- )
- _describe 'Device types' _l
-}
-
-__lxc_containers_running () {
- local -a _l=(${(@f)"$(_call_program containers lxc list --fast | tail -n +4 | awk '{print $2 $4}' | grep -E 'RUNNING$' | sed -e "s/RUNNING//")"})
- _describe -t containers 'Running Containers' _l
-}
-
-__lxc_containers_stopped () {
- local -a _l=(${(@f)"$(_call_program containers lxc list --fast | tail -n +4 | awk '{print $2 $4}' | grep -E 'STOPPED$' | sed -e "s/STOPPED//")"})
- _describe -t containers 'Stopped containers' _l
-}
-
-__lxc_containers_all () {
- local -a _l=(${(@f)"$(_call_program containers lxc list --fast | tail -n +4 | awk '{print $2}' | grep -E -v '^(\||^$)')"})
- _describe -t containers 'All containers' _l
-}
-
-__lxc_images_as_fingerprint () {
- # local -a _l=(${(@f)"$(_call_program images lxc image list | tail -n +4 | egrep -e '^\|' | awk '{split($0,a,"|"); for(i in a){ sub(/^[ \t]+/,"",a[i]);sub(/[ \t]+$/,"",a[i]);}; (a[2]=="") ? b=" (not aliased)" : b=" (aliased as " a[2] ")" ; print a[3] ":" a[5] b }' )"})
-
- local -a _l
- _call_program images lxc image list --format=csv | sed -e 's/:/\\:/g' | while read line
- do
- local alias=$(echo $line| cut -d ',' -f 1)
- if [ -n "$alias" ]; then
- suffix="$alias"
- else
- suffix='(not aliased)'
- fi
- _l=($_l "$(echo $line | awk -F ',' '{printf "%s:%-44s -- ",$2,$4}')$suffix")
- done
-
- _describe -t images_as_fingerprint 'Images as fingerprint' _l
-}
-
-__lxc_images_as_alias () {
- # local -a _l=(${(@f)"$(_call_program images lxc image alias list | tail -n +4 | egrep -e '^\|' | awk '{split($0,a,"|"); for(i in a){ sub(/^[ \t]+/,"",a[i]);sub(/[ \t]+$/,"",a[i]);}; (a[4]=="") ? b="" : b=" - " a[4] ;print a[2] ":" a[3] b }' )"})
-
- local -a _l
- _call_program images lxc image list --format=csv | sed -e 's/:/\\:/g' | while read line
- do
- local alias=$(echo $line| cut -d ',' -f 1)
- if [ -n "$alias" ]; then
- _l=($_l "$(echo $line | awk -F ',' '{printf "%s: %s -- %s",$1,$2,$4}')")
- fi
- done
- _describe -t images_as_alias 'Images as alias' _l
-}
-
-__lxc_images () {
- __lxc_images_as_alias
- __lxc_images_as_fingerprint
-}
-
-__lxc_aliases () {
- local -a _l=(${(@f)"$(_call_program aliases lxc alias list | tail -n +4 | grep -E '^\|' | awk '{print $2 ":" $4}')"})
- _describe -t aliases 'Aliases' _l
-}
-
-__lxc_remotes () {
- local -a _l=(${(@f)"$(_call_program remotes lxc remote list | tail -n +4 | grep -E -e '^\|' | sed -e 's/(default)//' | awk '{print $2 ":" $4}')"})
- _describe -t remotes 'Remotes' _l
-}
-
-__lxc_profiles () {
- local -a _l=(${(@f)"$(_call_program profiles lxc profile list | tail -n +4 | grep -E -e '^\|' | awk '{print $2 ":used by " $4 " containers" }' )"})
- _describe -t profiles 'Profiles' _l
-}
-
-__lxc_projects() {
- local -a _l=(${(@f)"$(_call_program profiles lxc project list --format=csv | cut -d ',' -f 1 | sed -e 's/ (current)/:current/')"})
- _describe -t profiles 'Projects' _l
-}
-
-__lxc_storages () {
- local -a _l=(${(@f)"$(_call_program profiles lxc storage list | tail -n +4 | grep -E -e '^\|' | awk '{print $2 }')"})
- _describe -t storages 'Storages' _l
-}
-
-__get_lxc_keys_by_device () {
- typeset -A hash
- hash[nic]="(nictype limits.ingress limits.egress limits.max name host_name hwaddr mtu \
- parent vlan ipv4.address ipv6.address security.mac_filtering maas.subnet.ipv4 maas.subnet.ipv6)"
- hash[infiniband]="(nictype name hwaddr mtu parent)"
- hash[disk]="(limits.read limits.write limits.max path source optional readonly size recursive pool)"
- hash[unix-char]="(source path major minor uid gid mode required)"
- hash[unix-block]="(source path major minor uid gid mode required)"
- hash[usb]="(vendorid productid uid gid mode required)"
- hash[gpu]="(vendorid productid id pci uid gid mode)"
- hash[proxy]="(listen bind connect)"
- echo "$hash[$1]"
-}
-
-__get_lxc_templates_by_container () {
- lxc config template list $1 | tail -n +4 | grep -E '^\|' | awk '{print $2}'
-}
-
-__get_lxc_profiles () {
- lxc profile list | tail -n +4 | grep -E -e '^\|' | awk '{print $2}' | paste -sd " "
-}
-
-compdef _lxc lxc
diff --git a/.config/zsh/completion/_lxd b/.config/zsh/completion/_lxd
deleted file mode 100644
index 1a62c3b..0000000
--- a/.config/zsh/completion/_lxd
+++ /dev/null
@@ -1,47 +0,0 @@
-#compdef lxd
-
-# _lxd
-#
-# Copyright (c) 2020 endaaman
-#
-# This software may be modified and distributed under the terms
-# of the MIT license. See the LICENSE file for details.
-
-_lxd() {
- _arguments -C \
- '1: :__lxd_commands' \
- '*: :__lxd_global_flags'
-}
-
-
-__lxd_global_flags() {
- local -a _c
- _c=(
- {-d,--debug}':Show all debug messages'
- '--group:The group of users that will be allowed to talk to LXD'
- {-h,--help}':Print help'
- '--logfile:Path to the log file'
- '--syslog:Log to syslog'
- '--trace:Log tracing targets'
- )
- _describe -o -t global_options 'Flags' _c
-}
-
-
-
-__lxd_commands() {
- local -a _c
- _c=(
- 'activateifneeded:Check if LXD should be started'
- 'cluster:Low-level cluster administration commands'
- 'help:Help about any command'
- 'import:Import existing containers'
- 'init:Configure the LXD daemon'
- 'shutdown:Tell LXD to shutdown all containers and exit'
- 'version:Show the server version'
- 'waitready:Wait for LXD to be ready to process requests'
- )
- _describe -t commands 'Commands' _c
-}
-
-compdef _lxd lxd