summaryrefslogtreecommitdiff
path: root/completions/fbgs
blob: 7a3ad7be1477c4c3cf84ac384b4e6b682007252d (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
41
42
43
44
45
46
47
48
49
50
# bash completion for fbgs(1)                              -*- shell-script -*-

_fbgs()
{
    local cur prev words cword
    _init_completion || return

    case "$prev" in
        -f|--font)
            local IFS=$'\n'
            COMPREPLY=( $(compgen -W '$(fc-list 2>/dev/null)' -- "$cur") )
            return
            ;;
        -m|--mode)
            COMPREPLY=( $(compgen -W '$(command sed \
                -n "/^mode/{s/^mode \{1,\}\"\([^\"]\{1,\}\)\"/\1/g;p}" \
                /etc/fb.modes 2>/dev/null)' -- "$cur") )
            return
            ;;
        -d|--device)
            COMPREPLY=( $(compgen -f -d -- "${cur:-/dev/}") )
            return
            ;;
        -fp|--firstpage|-lp|--lastpage|-r|--resolution|-s|--scroll|-t|\
        --timeout)
            # expect integer value
            COMPREPLY+=( $(compgen -W '{0..9}') )
            compopt -o nospace
            return
            ;;
        -T|--vt|-p|--password|-g|--gamma)
            # argument required but no completions available
            return
            ;;
    esac

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $(compgen -W '--bell --help --password -fp --firstpage
            -lp --lastpage --color -l -xl -xxl --resolution --autozoom
            --{,no}autoup --{,no}autodown --{,no}fitwidth --{,no}verbose
            --{,no}random --vt --scroll --timeout --{,no}once --gamma --font
            --device --mode' -- "$cur") )
        [[ $COMPREPLY ]] && return
    fi

    _filedir '?(e)ps|pdf'
} &&
complete -F _fbgs fbgs

# ex: filetype=sh