diff options
Diffstat (limited to 'shell-completion')
-rw-r--r-- | shell-completion/bash/resolvectl | 20 | ||||
-rw-r--r-- | shell-completion/bash/systemd-resolve | 3 |
2 files changed, 22 insertions, 1 deletions
diff --git a/shell-completion/bash/resolvectl b/shell-completion/bash/resolvectl index 9ffbbbcf1e..a8b24bc757 100644 --- a/shell-completion/bash/resolvectl +++ b/shell-completion/bash/resolvectl @@ -48,12 +48,14 @@ _resolvectl() { [LINK]='revert dns domain nta' [RESOLVE]='llmnr mdns' [DNSSEC]='dnssec' + [PRIVATEDNS]='privatedns' [STANDALONE]='statistics reset-statistics flush-caches reset-server-features' ) local -A ARGS=( [FAMILY]='tcp udp sctp' [RESOLVE]='yes no resolve' [DNSSEC]='yes no allow-downgrade' + [PRIVATEDNS]='no opportunistic' ) local interfaces=$( __get_interfaces ) @@ -109,7 +111,7 @@ _resolvectl() { comps="" fi - elif __contains_word "$verb" ${VERBS[LINK]} ${VERBS[RESOLVE]} ${VERBS[DNSSEC]}; then + elif __contains_word "$verb" ${VERBS[LINK]} ${VERBS[RESOLVE]} ${VERBS[DNSSEC]} ${VERBS[PRIVATEDNS]}; then for ((i++; i < COMP_CWORD; i++)); do if __contains_word "${COMP_WORDS[i]}" $interfaces && ! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then @@ -153,6 +155,22 @@ _resolvectl() { comps='' fi + elif __contains_word "$verb" ${VERBS[PRIVATEDNS]}; then + name= + for ((i++; i < COMP_CWORD; i++)); do + if __contains_word "${COMP_WORDS[i]}" ${ARGS[PRIVATEDNS]} && + ! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then + name=${COMP_WORDS[i]} + break; + fi + done + + if [[ -z $name ]]; then + comps=${ARGS[PRIVATEDNS]} + else + comps='' + fi + else comps='' fi diff --git a/shell-completion/bash/systemd-resolve b/shell-completion/bash/systemd-resolve index ecd1ebad54..7bcd13563c 100644 --- a/shell-completion/bash/systemd-resolve +++ b/shell-completion/bash/systemd-resolve @@ -65,6 +65,9 @@ _systemd-resolve() { --set-dnssec) comps="yes no allow-downgrade" ;; + --set-privatedns) + comps="no opportunistic" + ;; esac COMPREPLY=( $(compgen -W '$comps' -- "$cur") ) return 0 |