@@ -6,26 +6,16 @@ _comp_cmd_rndc__list_commands()
66 rndc 2>&1 | awk ' /^ / {print $1}' | sort -u
77}
88
9- _comp_cmd_rndc__list_parameters ()
10- {
11- local SUBCMD=$1
12- rndc 2>&1 | awk " /^ ${SUBCMD} / { print \$ 2 }"
13- if [[ $cur == @* ]]; then
14- _comp_compgen_known_hosts -- " $cur "
15- return
16- fi
17-
18- }
19-
20- # TODO: not used yet, useful for dnssec-signzone etc.
219_comp_cmd_named_checkconf__list_zones ()
2210{
2311 named-checkconf -l | awk ' {print $1}'
2412}
2513
26- # TODO: named-rrchecker provides -T -C listings of supported query types.
27- # should replace _comp_cmd_nslookup__queryclass, _comp_cmd_nslookup__querytype
28- # when command is present.
14+ _comp_cmd_rndc__list_parameters ()
15+ {
16+ local SUBCMD=$1
17+ rndc 2>&1 | awk " /^ ${SUBCMD} / { print \$ 2 }"
18+ }
2919
3020_comp_cmd_rndc ()
3121{
@@ -37,19 +27,29 @@ _comp_cmd_rndc()
3727 _comp_compgen -a filedir
3828 return
3929 ;;
30+ -s)
31+ _comp_compgen_known_hosts -- " $cur "
32+ return
33+ ;;
4034 esac
4135
4236 local REPLY
4337 _comp_count_args
44- if [[ $cur == -* ]]; then
45- _comp_compgen_usage
46- return
47- fi
4838 if (( REPLY == 1 )) ; then
4939 _comp_compgen -- -W " $( _comp_cmd_rndc__list_commands) "
5040 fi
5141 if (( REPLY == 2 )) ; then
52- _comp_compgen -- -W " $( _comp_cmd_rndc__list_parameters $prev ) "
42+ local PARAMS=" $( _comp_cmd_rndc__list_parameters $prev ) "
43+ if [[ " $PARAMS " == zone ]]; then
44+ _comp_compgen -- -W " $( _comp_cmd_named_checkconf__list_zones) "
45+ return
46+ else
47+ _comp_compgen -- -W " $PARAMS "
48+ fi
49+ fi
50+ if [[ $cur == -* ]]; then
51+ _comp_compgen_usage
52+ return
5353 fi
5454} && complete -F _comp_cmd_rndc rndc
5555
@@ -87,16 +87,16 @@ _comp_cmd_dig()
8787 ;;
8888 esac
8989
90- if [[ $cur == @* ]]; then
91- _comp_compgen_known_hosts -- " $cur "
92- return
93- fi
9490 if [[ $cur == -* ]]; then
9591 _comp_compgen_usage
9692 return
9793 fi
94+ if [[ $cur == @* ]]; then
95+ _comp_compgen_known_hosts -- " $cur "
96+ return
97+ fi
9898 if [[ $cur == +* ]]; then
99- _comp_compgen -- -W " $( _comp_cmd_dig__list_plusopts dig ) "
99+ _comp_compgen -- -W " $( _comp_cmd_dig__list_plusopts) "
100100 [[ ${COMPREPLY-} == * = ]] && compopt -o nospace
101101
102102 fi
@@ -142,7 +142,6 @@ _comp_cmd_mdig()
142142 _comp_compgen_known_hosts -- " $cur "
143143 return
144144 fi
145-
146145 if [[ $cur == +* ]]; then
147146 _comp_compgen -- -W " $( _comp_cmd_dig__list_plusopts mdig) "
148147 [[ ${COMPREPLY-} == * = ]] && compopt -o nospace
@@ -190,7 +189,6 @@ _comp_cmd_delv()
190189 _comp_compgen_known_hosts -- " $cur "
191190 return
192191 fi
193-
194192 if [[ $cur == +* ]]; then
195193 _comp_compgen -- -W " $( _comp_cmd_dig__list_plusopts delv) "
196194 [[ ${COMPREPLY-} == * = ]] && compopt -o nospace
0 commit comments