Skip to content

Commit 82abc61

Browse files
committed
More experimental changes
1 parent e5ce915 commit 82abc61

File tree

1 file changed

+25
-27
lines changed

1 file changed

+25
-27
lines changed

completions/bind9

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)