mirror of
https://github.com/systemd/systemd
synced 2024-07-21 18:24:38 +00:00
shell-completion/zsh: improve and expand machinectl completion
This commit is contained in:
parent
d4c8de21a0
commit
57d389c3fb
|
@ -12,9 +12,9 @@
|
||||||
_machines=("${(fo)$(__machinectl_get_images)}")
|
_machines=("${(fo)$(__machinectl_get_images)}")
|
||||||
typeset -U _machines
|
typeset -U _machines
|
||||||
if [[ -n "$_machines" ]]; then
|
if [[ -n "$_machines" ]]; then
|
||||||
_describe 'machines' _machines
|
_describe 'images' _machines
|
||||||
else
|
else
|
||||||
_message 'no machines'
|
_message 'no images'
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,13 +42,22 @@
|
||||||
"list-images:Show available container and VM images"
|
"list-images:Show available container and VM images"
|
||||||
"image-status:Show image details"
|
"image-status:Show image details"
|
||||||
"show-image:Show properties of image"
|
"show-image:Show properties of image"
|
||||||
|
"edit:Edit settings of one or more VMs/containers"
|
||||||
|
"cat:Show settings of one or more VMs/containers"
|
||||||
"clone:Clone an image"
|
"clone:Clone an image"
|
||||||
"rename:Rename an image"
|
"rename:Rename an image"
|
||||||
"read-only:Mark or unmark image read-only"
|
"read-only:Mark or unmark image read-only"
|
||||||
"remove:Remove an image"
|
"remove:Remove an image"
|
||||||
|
"set-limits:Set image or pool size limit (disk quota)"
|
||||||
|
"clean:Remove hidden (or all) images"
|
||||||
|
|
||||||
"pull-tar:Download a TAR container image"
|
"pull-tar:Download a TAR container image"
|
||||||
"pull-raw:Download a RAW container or VM image"
|
"pull-raw:Download a RAW container or VM image"
|
||||||
|
"import-tar:Import a local TAR container image"
|
||||||
|
"import-raw:Import a local RAW container or VM image"
|
||||||
|
"import-fs:Import a local directory container image"
|
||||||
|
"export-tar:Export a TAR container image locally"
|
||||||
|
"export-raw:Export a RAW container or VM image locally"
|
||||||
"list-transfers:Show list of downloads in progress"
|
"list-transfers:Show list of downloads in progress"
|
||||||
"cancel-transfer:Cancel a download"
|
"cancel-transfer:Cancel a download"
|
||||||
)
|
)
|
||||||
|
@ -57,28 +66,98 @@
|
||||||
_describe -t commands 'machinectl command' _machinectl_cmds || compadd "$@"
|
_describe -t commands 'machinectl command' _machinectl_cmds || compadd "$@"
|
||||||
else
|
else
|
||||||
local curcontext="$curcontext"
|
local curcontext="$curcontext"
|
||||||
|
local stop=0
|
||||||
cmd="${${_machinectl_cmds[(r)$words[1]:*]%%:*}}"
|
cmd="${${_machinectl_cmds[(r)$words[1]:*]%%:*}}"
|
||||||
if (( $#cmd )); then
|
case $cmd in
|
||||||
if (( CURRENT == 2 )); then
|
start|enable|disable)
|
||||||
case $cmd in
|
_machinectl_images ;;
|
||||||
list*|cancel-transfer|pull-tar|pull-raw)
|
|
||||||
msg="no options" ;;
|
status|show|poweroff|reboot|terminate|kill)
|
||||||
clone)
|
_sd_machines ;;
|
||||||
_machinectl_images ;;
|
|
||||||
start)
|
login|shell)
|
||||||
_machinectl_images ;;
|
if (( CURRENT == 2 )); then _sd_machines
|
||||||
*)
|
else stop=1
|
||||||
_sd_machines
|
fi ;;
|
||||||
esac
|
|
||||||
else
|
copy-to|bind)
|
||||||
case $cmd in
|
if (( CURRENT == 2 )); then _sd_machines
|
||||||
copy-to|copy-from|bind)
|
elif (( CURRENT == 3 )); then _files
|
||||||
_files ;;
|
elif (( CURRENT == 4 )); then _message "path on container"
|
||||||
*) msg="no options"
|
else stop=1
|
||||||
esac
|
fi ;;
|
||||||
fi
|
|
||||||
else
|
copy-from)
|
||||||
|
if (( CURRENT == 2 )); then _sd_machines
|
||||||
|
elif (( CURRENT == 3 )); then _message "path on container"
|
||||||
|
elif (( CURRENT == 4 )); then _files
|
||||||
|
else stop=1
|
||||||
|
fi ;;
|
||||||
|
|
||||||
|
image-status|show-image|remove)
|
||||||
|
_machinectl_images ;;
|
||||||
|
|
||||||
|
edit|cat)
|
||||||
|
if (( CURRENT == 2 )); then _machinectl_images
|
||||||
|
else stop=1
|
||||||
|
fi ;;
|
||||||
|
|
||||||
|
clone|rename)
|
||||||
|
if (( CURRENT == 2 )); then _machinectl_images
|
||||||
|
elif (( CURRENT == 3 )); then _message "target image"
|
||||||
|
else stop=1
|
||||||
|
fi ;;
|
||||||
|
|
||||||
|
read-only)
|
||||||
|
if (( CURRENT == 2 )); then _machinectl_images
|
||||||
|
elif (( CURRENT == 3 )); then _values 'read-only flag' 'true' 'false'
|
||||||
|
else stop=1
|
||||||
|
fi ;;
|
||||||
|
|
||||||
|
set-limit)
|
||||||
|
if (( CURRENT == 2 )); then _machinectl_images
|
||||||
|
elif (( CURRENT == 3 )); then _message "size limit"
|
||||||
|
else stop=1
|
||||||
|
fi ;;
|
||||||
|
|
||||||
|
pull-tar|pull-raw)
|
||||||
|
if (( CURRENT == 2 )); then _message "${cmd#pull-} file URL"
|
||||||
|
elif (( CURRENT == 3 )); then _message "target image"
|
||||||
|
else stop=1
|
||||||
|
fi ;;
|
||||||
|
|
||||||
|
import-tar)
|
||||||
|
if (( CURRENT == 2 )); then _files -g "*.(tar(|.(gz|bz2|xz|zst))|tgz|tbz2|txz|tzst)(.)"
|
||||||
|
elif (( CURRENT == 3 )); then _message "target image"
|
||||||
|
else stop=1
|
||||||
|
fi ;;
|
||||||
|
import-raw)
|
||||||
|
if (( CURRENT == 2 )); then _files -g "*(.)"
|
||||||
|
elif (( CURRENT == 3 )); then _message "target image"
|
||||||
|
else stop=1
|
||||||
|
fi ;;
|
||||||
|
import-fs)
|
||||||
|
if (( CURRENT == 2 )); then _files -/
|
||||||
|
elif (( CURRENT == 3 )); then _message "target image"
|
||||||
|
else stop=1
|
||||||
|
fi ;;
|
||||||
|
|
||||||
|
export-tar|export-raw)
|
||||||
|
if (( CURRENT == 2 )); then _machinectl_images
|
||||||
|
elif (( CURRENT == 3 )); then _files
|
||||||
|
else stop=1
|
||||||
|
fi ;;
|
||||||
|
|
||||||
|
list*|clean|cancel-transfer)
|
||||||
|
stop=1 ;;
|
||||||
|
|
||||||
|
'')
|
||||||
|
stop=1 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if (( stop )); then
|
||||||
_message "no more options"
|
_message "no more options"
|
||||||
|
return 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue