/usr/share/bash-completion/completions/keymgr is in knot 2.1.1-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 | # keymgr(1) completion -*- shell-script -*-
_keymgr()
{
local cur prev words cword
_init_completion || return
case $prev in
-V|-version)
return 0
;;
-h|--help)
return 0
;;
-d|--dir)
_filedir -d
return 0;
;;
esac
local count start cmd sub1cmd sub2cmd sub3cmd
if [[ ${words[1]} == -* ]]; then
start=3
else
start=1
fi
cmd=${words[start]}
sub1cmd=${words[$((start + 1))]}
sub2cmd=${words[$((start + 2))]}
sub3cmd=${words[$((start + 3))]}
if [[ -z $cmd ]]; then
case $cur in
-*)
local c="--version --help --dir"
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
return 0
;;
esac
fi
count=1 #counts how many levels are we deep; required for user-input strings
case $cmd in
init)
;;
keystore)
case $sub1cmd in
list)
;;
*)
COMPREPLY=( $( compgen -W 'list' -- "$cur" ) )
;;
esac
;;
policy)
count=$((count + 1))
case $sub1cmd in
add)
count=$((count + 1))
if [[ $count -ne $cword ]]; then
COMPREPLY=( $( compgen -W 'algorithm dnskey-ttl
ksk-size zsk-size zsk-lifetime rrsig-lifetime
rrsig-refresh nsec3 soa-min-ttl zone-max-ttl delay' \
-- "$cur" ) )
fi
;;
list|remove|show)
count=$((count + 1))
if [[ $count -eq $cword ]]; then
local c=$( keymgr policy list 2>/dev/null )
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
fi
;;
set)
count=$((count + 1))
if [[ $count -ne $cword ]]; then
COMPREPLY=( $( compgen -W 'algorithm dnskey-ttl
ksk-size zsk-size zsk-lifetime rrsig-lifetime
rrsig-refresh nsec3 soa-min-ttl zone-max-ttl delay' \
-- "$cur" ) )
else
local c=$( keymgr policy list 2>/dev/null )
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
fi
;;
*)
COMPREPLY=( $( compgen -W 'add list remove set show' \
-- "$cur" ) )
;;
esac
;;
zone)
count=$((count + 1))
case $sub1cmd in
add)
count=$((count + 1))
if [[ $count -ne $cword ]]; then
count=$((count + 1))
case $sub3cmd in
policy)
count=$((count + 1))
if [[ $count -eq $cword ]]; then
local c=$( keymgr policy list 2>/dev/null )
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
fi
;;
*)
COMPREPLY=( $( compgen -W 'policy' -- "$cur" ) )
;;
esac
fi
;;
key)
count=$((count + 1))
case $sub2cmd in
generate)
count=$((count + 1))
if [[ $count -eq $cword ]]; then
local c=$( keymgr zone list 2>/dev/null )
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
else
COMPREPLY=( $( compgen -W 'algorithm size
ksk publish active retire remove' -- "$cur" ) )
fi
;;
import)
count=$((count + 1))
if [[ $count -ne $cword ]]; then
_filedir
else
local c=$( keymgr zone list 2>/dev/null )
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
fi
;;
list)
count=$((count + 1))
if [[ $count -eq $cword ]]; then
local c=$( keymgr zone list 2>/dev/null )
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
fi
;;
set)
count=$((count + 1))
if [[ $count -ne $cword ]]; then
count=$((count + 1))
if [[ $count -ne $cword ]]; then
COMPREPLY=( $( compgen -W ' publish
active retire remove' -- "$cur" ) )
else
local c=$( keymgr zone key list "$sub3cmd" 2>/dev/null | cut -f 2 -d ' ' )
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
fi
else
local c=$( keymgr zone list 2>/dev/null )
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
fi
;;
show|ds)
count=$((count + 1))
if [[ $count -ne $cword ]]; then
local c=$( keymgr zone key list "$sub3cmd" 2>/dev/null | cut -f 2 -d ' ' )
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
else
local c=$( keymgr zone list 2>/dev/null )
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
fi
;;
*)
COMPREPLY=( $( compgen -W 'generate import
list set show ds' -- "$cur" ) )
;;
esac
;;
list)
;;
remove)
count=$((count + 1))
if [[ $count -ne $cword ]]; then
case $sub3cmd in
force)
;;
*)
COMPREPLY=( $( compgen -W 'force' -- "$cur" ) )
;;
esac
else
local c=$( keymgr zone list 2>/dev/null )
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
fi
;;
show)
count=$((count + 1))
if [[ $count -eq $cword ]]; then
local c=$( keymgr zone list 2>/dev/null )
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
fi
;;
set)
count=$((count + 1))
if [[ $count -ne $cword ]]; then
count=$((count + 1))
case $sub3cmd in
policy)
count=$((count + 1))
if [[ $count -eq $cword ]]; then
local c=$( keymgr policy list 2>/dev/null )
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
fi
;;
*)
COMPREPLY=( $( compgen -W 'policy' -- "$cur" ) )
;;
esac
else
local c=$( keymgr zone list 2>/dev/null )
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
fi
;;
*)
COMPREPLY=( $( compgen -W 'add key list remove set show' \
-- "$cur" ) )
;;
esac
;;
*)
local c="init zone policy keystore"
COMPREPLY=( $( compgen -W "$c" -- "$cur" ) )
;;
esac
}
complete -F _keymgr keymgr
|