summaryrefslogtreecommitdiffstats
path: root/utils/shell-completion/client.bash
blob: 5cf66723b9dd36f61402a35e60953af30ab341bd (plain)
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
#/usr/bin/env bash

_kresctl_completion()
{
    COMPREPLY=()
    local args=""
    local words=""
    local cur="${COMP_WORDS[COMP_CWORD]}"
    local opts=$(kresctl completion --bash --args "${COMP_WORDS[@]:1}")

    # filter special opts
    for opt in $opts
    do
    if [[ "$opt" == "#dirnames#" ]]; then
        args="$args${args:+ }-d"
    elif [[ "$opt" == "#filenames#" ]]; then
        args="$args${args:+ }-f"
    elif [[ "$opt" == "#nospace#" ]]; then
        compopt -o nospace
    else
        words="$words${words:+ }$opt"
    fi
    done

    COMPREPLY=($(compgen $args -W "${words}" -- "${cur}"))
    return 0
}

complete -o nosort -F _kresctl_completion kresctl