aboutsummaryrefslogtreecommitdiff
path: root/bash/bash_completion.d/openssl.bash
blob: 1e2a9c58cd9395385d4bb225570976b9aed6b719 (plain) (blame)
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
# Some simple completion for openssl(1ssl)
_openssl() {

    # Needs openssl(1ssl)
    hash openssl 2>/dev/null || return

    # Only complete the first word: OpenSSL subcommands
    ((COMP_CWORD == 1)) || return

    # Iterate through completions produced by subshell
    local -a subcmds
    local ci subcmd
    while read -a subcmds -r ; do
        for subcmd in "${subcmds[@]}" ; do
            case $subcmd in
                "$2"*) COMPREPLY[ci++]=$subcmd ;;
            esac
        done
    done < <(
        openssl list -commands \
            -cipher-commands \
            -digest-commands
    )
}
complete -F _openssl -o bashdefault -o default openssl