Skip to content

Commit 1303f8a

Browse files
authored
Merge pull request #1517 from scop/feat/ssh-keygen-more-opt-args
feat(ssh-keygen): more option arg completions
2 parents f284d98 + 4269a90 commit 1303f8a

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

completions/ssh-keygen

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ _comp_cmd_ssh_keygen()
66
_comp_initialize -n := -- "$@" || return
77

88
local IFS=$' \t\n' # for ${words[*]}
9-
local noargopts='!(-*|*[ aCIJjMNPSVWzbEFRDwfGKsTmnOrtY]*)'
9+
local noargopts='!(-*|*[ aCIJjMNPSVWzbEFRDwfGKsTmnOrtYZ]*)'
1010
# shellcheck disable=SC2254
1111
case $prev in
12-
-${noargopts}[aCIJjMNPSVWz])
12+
-${noargopts}[aCIJjNPSVWz])
1313
return
1414
;;
1515
-${noargopts}b)
@@ -46,6 +46,10 @@ _comp_cmd_ssh_keygen()
4646
_comp_compgen_filedir
4747
return
4848
;;
49+
-${noargopts}M)
50+
_comp_compgen -- -W 'generate screen'
51+
return
52+
;;
4953
-${noargopts}m)
5054
_comp_compgen -- -W 'PEM PKCS8 RFC4716'
5155
return
@@ -141,15 +145,23 @@ _comp_cmd_ssh_keygen()
141145
local pathcmd protocols
142146
pathcmd=$(type -P -- "$1") && local PATH=${pathcmd%/*}:$PATH
143147
_comp_compgen -v protocols -x ssh query protocol-version
144-
local types='dsa ecdsa ecdsa-sk ed25519 ed25519-sk rsa'
148+
local -a types=(
149+
dsa ecdsa ecdsa-sk ed25519 ed25519-sk rsa
150+
rsa-sha2-256 rsa-sha2-512 ssh-rsa
151+
)
145152
if [[ ${protocols[*]} == *1* ]]; then
146-
types+=' rsa1'
153+
types+=(rsa1)
147154
fi
148-
_comp_compgen -- -W "$types"
155+
_comp_compgen -- -W '"${types[@]}"'
149156
return
150157
;;
151158
-${noargopts}Y)
152-
_comp_compgen -- -W 'find-principals check-novalidate sign verify'
159+
_comp_compgen -- -W \
160+
'find-principals match-principals check-novalidate sign verify'
161+
return
162+
;;
163+
-${noargopts}Z)
164+
_comp_compgen -x ssh query ciphers
153165
return
154166
;;
155167
esac

0 commit comments

Comments
 (0)