summaryrefslogtreecommitdiff
path: root/completion/flatpak
blob: b90ef09294b5b94f869e96e5db682e0fc6fab529 (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
30
31
32
33
34
35
36
37
38
39
40
# Check for bash
[ -z "$BASH_VERSION" ] && return

####################################################################################################

__flatpak() {
    local IFS=$'\n'
    local cur=`_get_cword :`
    RES=($(flatpak complete "${COMP_LINE}" "${COMP_POINT}" "${cur}"))

    COMPREPLY=()
    for i in "${!RES[@]}"; do
        if [[ "${RES[$i]}" = "__FLATPAK_FILE" ]]; then
            declare -a COMPGEN_OPTS=('-f')
        elif [[ "${RES[$i]}" = "__FLATPAK_BUNDLE_FILE" ]]; then
            declare -a COMPGEN_OPTS=('-f' '-G' '*.flatpak')
        elif [[ "${RES[$i]}" = "__FLATPAK_BUNDLE_OR_REF_FILE" ]]; then
            declare -a COMPGEN_OPTS=('-f' '-G' '*.flatpak@(|ref)')
        elif [[ "${RES[$i]}" = "__FLATPAK_DIR" ]]; then
            declare -a COMPGEN_OPTS=('-d')
        else
            declare -a COMPGEN_OPTS=()
        fi

        if [[ ${#COMPGEN_OPTS[@]} -ne 0 ]]; then
            if [[ "${cur}" = "=" ]]; then
                CUR=""
            else
                CUR="${cur}"
            fi
            COMPREPLY=("${COMPREPLY[@]}" $(compgen ${COMPGEN_OPTS[@]} -- "${CUR}") )
        else
            COMPREPLY=("${COMPREPLY[@]}" "${RES[$i]}")
        fi
    done
}

####################################################################################################

complete -o nospace -F __flatpak flatpak