bash-completion/resolvectl: support privatedns command

This commit is contained in:
Yu Watanabe 2018-06-13 11:16:26 +09:00
parent ddf1a95301
commit 1a363edad1
2 changed files with 22 additions and 1 deletions

View File

@ -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

View File

@ -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