mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-08 21:17:47 +03:00
shell-completion: add missing args to bash resolvectl
Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
(cherry picked from commit 4a06acda25
)
This commit is contained in:
parent
dba7fd523c
commit
df98c064c0
@ -23,7 +23,7 @@ __contains_word () {
|
||||
done
|
||||
}
|
||||
|
||||
__get_interfaces(){
|
||||
__get_interfaces() {
|
||||
local name
|
||||
for name in $(cd /sys/class/net && command ls); do
|
||||
[[ "$name" != "lo" ]] && echo "$name"
|
||||
@ -35,10 +35,10 @@ _resolvectl() {
|
||||
local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
|
||||
local -A OPTS=(
|
||||
[STANDALONE]='-h --help --version -4 -6 --legend=no --cname=no
|
||||
--validate=no --synthesize=no --cache=no --zone=no
|
||||
--validate=no --synthesize=no --cache=no --relax-single-label=no --zone=no
|
||||
--trust-anchor=no --network=no --service-address=no
|
||||
--service-txt=no --search=no --stale-data=no --no-pager'
|
||||
[ARG]='-t --type -c --class -i --interface -p --protocol --raw'
|
||||
[ARG]='-t --type -c --class -i --interface -p --protocol --raw --json'
|
||||
)
|
||||
local -A VERBS=(
|
||||
[DOMAIN]='query service openpgp'
|
||||
@ -49,7 +49,7 @@ _resolvectl() {
|
||||
[RESOLVE]='llmnr mdns'
|
||||
[DNSSEC]='dnssec'
|
||||
[DNSOVERTLS]='dnsovertls'
|
||||
[STANDALONE]='statistics reset-statistics flush-caches reset-server-features show-cache'
|
||||
[STANDALONE]='statistics reset-statistics flush-caches reset-server-features monitor show-cache show-server-state'
|
||||
[LOG_LEVEL]='log-level'
|
||||
)
|
||||
local -A ARGS=(
|
||||
@ -59,14 +59,13 @@ _resolvectl() {
|
||||
[DNSSEC]='yes no allow-downgrade'
|
||||
[DNSOVERTLS]='yes no opportunistic'
|
||||
)
|
||||
local interfaces=$( __get_interfaces )
|
||||
|
||||
if __contains_word "$prev" ${OPTS[ARG]}; then
|
||||
case $prev in
|
||||
--interface|-i)
|
||||
comps="$interfaces"
|
||||
comps=$( __get_interfaces )
|
||||
;;
|
||||
--protocol|-p|--type|-t|--class|-c)
|
||||
--protocol|-p|--type|-t|--class|-c|--json)
|
||||
comps=$( resolvectl --legend=no "$prev" help; echo help )
|
||||
;;
|
||||
--raw)
|
||||
@ -97,7 +96,7 @@ _resolvectl() {
|
||||
comps=''
|
||||
|
||||
elif __contains_word "$verb" ${VERBS[STATUS]}; then
|
||||
comps="$interfaces"
|
||||
comps=$( __get_interfaces )
|
||||
|
||||
elif __contains_word "$verb" ${VERBS[LOG_LEVEL]}; then
|
||||
comps='debug info notice warning err crit alert emerg'
|
||||
@ -117,6 +116,7 @@ _resolvectl() {
|
||||
fi
|
||||
|
||||
elif __contains_word "$verb" ${VERBS[LINK]} ${VERBS[BOOLEAN]} ${VERBS[RESOLVE]} ${VERBS[DNSSEC]} ${VERBS[DNSOVERTLS]}; then
|
||||
local interfaces=$( __get_interfaces )
|
||||
for ((i++; i < COMP_CWORD; i++)); do
|
||||
if __contains_word "${COMP_WORDS[i]}" $interfaces &&
|
||||
! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then
|
||||
|
Loading…
Reference in New Issue
Block a user