diff options
Diffstat (limited to 'completions/openssl')
-rw-r--r-- | completions/openssl | 85 |
1 files changed, 43 insertions, 42 deletions
diff --git a/completions/openssl b/completions/openssl index dd77092..9dad715 100644 --- a/completions/openssl +++ b/completions/openssl @@ -1,52 +1,54 @@ # bash completion for openssl -*- shell-script -*- -_openssl_sections() +_comp_cmd_openssl__compgen_sections() { - local config f + local config="" _i _file # check if a specific configuration file is used - for ((i = 2; i < cword; i++)); do - if [[ ${words[i]} == -config ]]; then - config=${words[i + 1]} + for ((_i = 2; _i < cword; _i++)); do + if [[ ${words[_i]} == -config ]]; then + config=${words[_i + 1]} break fi done # if no config given, check some usual default locations - if [[ -z $config ]]; then - for f in /etc/ssl/openssl.cnf /etc/pki/tls/openssl.cnf \ + if [[ ! $config ]]; then + for _file in /etc/ssl/openssl.cnf /etc/pki/tls/openssl.cnf \ /usr/share/ssl/openssl.cnf; do - [[ -f $f ]] && config=$f && break + [[ -f $_file ]] && config=$_file && break done fi [[ ! -f $config ]] && return - COMPREPLY=($(compgen -W "$(awk '/\[.*\]/ {print $2}' $config)" -- "$cur")) + _comp_compgen -U config split -- "$(_comp_awk '/\[.*\]/ {print $2}' "$config")" } -_openssl_digests() +_comp_cmd_openssl__compgen_digests() { - "$1" dgst -h 2>&1 | - awk '/^-.*[ \t]to use the .* message digest algorithm/ { print $1 }' - local -a digests=($("$1" help 2>&1 | + [[ $cur == -* ]] || return + _comp_compgen_split -- "$( + "$1" dgst -h 2>&1 | + _comp_awk '/^-.*[ \t]to use the .* message digest algorithm/ { print $1 }' + )" + _comp_compgen -ac "${cur#-}" split -P "-" -- "$("$1" help 2>&1 | command sed -ne '/^Message Digest commands/,/^[[:space:]]*$/p' | - command sed -e 1d)) - printf "%s\n" "${digests[@]/#/-}" + command sed -e 1d)" } -_openssl() +_comp_cmd_openssl() { - local cur prev words cword - _init_completion || return + local cur prev words cword comp_args + _comp_initialize -- "$@" || return - local commands command options formats + local commands command formats commands='asn1parse ca ciphers crl crl2pkcs7 dgst dh dhparam dsa dsaparam ec ecparam enc engine errstr gendh gendsa genrsa nseq ocsp passwd pkcs12 pkcs7 pkcs8 prime rand req rsa rsautl s_client s_server s_time - sess_id smime speed spkac verify version x509 md2 md4 md5 rmd160 sha - sha1 aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc + sess_id smime speed spkac storeutl verify version x509 md2 md4 md5 rmd160 + sha sha1 aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc aes-256-ecb base64 bf bf-cbc bf-cfb bf-ecb bf-ofb camellia-128-cbc camellia-128-ecb camellia-192-cbc camellia-192-ecb camellia-256-cbc camellia-256-ecb cast cast-cbc cast5-cbc cast5-cfb cast5-ecb cast5-ofb @@ -56,7 +58,7 @@ _openssl() sha224 sha256 sha384 sha512 genpkey pkey pkeyparam pkeyutl' if ((cword == 1)); then - COMPREPLY=($(compgen -W "$commands" -- "$cur")) + _comp_compgen -- -W "$commands" else command=${words[1]} case $prev in @@ -65,15 +67,15 @@ _openssl() -out | -oid | -paramfile | -peerkey | -prvrify | -rand | -recip | -revoke | \ -sess_in | -sess_out | -spkac | -sigfile | -sign | -signkey | -signer | \ -signature | -ss_cert | -untrusted | -verify | -writerand) - _filedir + _comp_compgen_filedir return ;; -outdir | -CApath) - _filedir -d + _comp_compgen_filedir -d return ;; -name | -crlexts | -extensions) - _openssl_sections + _comp_cmd_openssl__compgen_sections return ;; -inform | -outform | -keyform | -certform | -CAform | -CAkeyform | -dkeyform | \ @@ -90,49 +92,48 @@ _openssl() formats+=" ENGINE" ;; esac - COMPREPLY=($(compgen -W "$formats" -- "$cur")) + _comp_compgen -- -W "$formats" return ;; -connect) - _known_hosts_real -- "$cur" + _comp_compgen_known_hosts -- "$cur" return ;; -starttls) - COMPREPLY=($(compgen -W ' - smtp pop3 imap ftp xmpp xmpp-server telnet irc mysql - postgres lmtp nntp sieve ldap - ' -- "$cur")) + _comp_compgen -- -W ' smtp pop3 imap ftp xmpp xmpp-server + telnet irc mysql postgres lmtp nntp sieve ldap' return ;; -cipher) - COMPREPLY=($(IFS=: compgen -W "$($1 ciphers)" -- "$cur")) + _comp_compgen_split -F : -- "$("$1" ciphers)" return ;; -kdf) - COMPREPLY=($(compgen -W 'TLS1-PRF HKDF' -- "$cur")) + _comp_compgen -- -W 'TLS1-PRF HKDF' return ;; esac if [[ $cur == -* ]]; then # possible options for the command - options=$(_parse_help "$1" "$command -help" 2>/dev/null) + _comp_compgen_help -- "$command" -help case $command in - dgst | req | x509) options+=" $(_openssl_digests $1)" ;; + dgst | req | x509) + _comp_compgen -a -i openssl digests "$1" + ;; esac - COMPREPLY=($(compgen -W "$options" -- "$cur")) else if [[ $command == speed ]]; then - COMPREPLY=($(compgen -W 'md2 mdc2 md5 hmac sha1 rmd160 - idea-cbc rc2-cbc rc5-cbc bf-cbc des-cbc des-ede3 rc4 - rsa512 rsa1024 rsa2048 rsa4096 dsa512 dsa1024 dsa2048 idea - rc2 des rsa blowfish' -- "$cur")) + _comp_compgen -- -W 'md2 mdc2 md5 hmac sha1 rmd160 idea-cbc + rc2-cbc rc5-cbc bf-cbc des-cbc des-ede3 rc4 rsa512 rsa1024 + rsa2048 rsa4096 dsa512 dsa1024 dsa2048 idea rc2 des rsa + blowfish' else - _filedir + _comp_compgen_filedir fi fi fi } && - complete -F _openssl -o default openssl + complete -F _comp_cmd_openssl -o default openssl # ex: filetype=sh |