summaryrefslogtreecommitdiff
path: root/completions/lilo
blob: af8539aa95d324adac2adf33daa9af3d9850412c (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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# bash completion for lilo(8)                              -*- shell-script -*-

_lilo_labels()
{
    COMPREPLY=($(compgen -W "$(awk -F= '$1 ~ /^[ \t]*label$/ {print $2}' \
        ${1:-/etc/lilo.conf} 2>/dev/null | command sed -e 's/\"//g')" \
        -- "$cur"))
}

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

    case $prev in
        -C | -i | -m | -s | -S)
            _filedir
            return
            ;;
        -r)
            _filedir -d
            return
            ;;
        -I | -D | -R)
            # label completion
            local i conf
            for i in "${!words[@]}"; do
                if [[ ${words[i]} == -C ]]; then
                    conf=${words[i + 1]}
                    break
                fi
            done
            _lilo_labels $conf
            return
            ;;
        -A | -b | -M | -u | -U)
            # device completion
            cur=${cur:=/dev/}
            _filedir
            return
            ;;
        -T)
            # topic completion
            COMPREPLY=($(compgen -W 'help ChRul EBDA geom geom= table=
                video' -- "$cur"))
            return
            ;;
        -B)
            _filedir bmp
            return
            ;;
        -E)
            _filedir '@(bmp|dat)'
            return
            ;;
    esac

    if [[ $cur == -* ]]; then
        # relevant options completion
        COMPREPLY=($(compgen -W '-A -B -b -c -C -d -E -f -g -i -I -l -L -m -M
            -p -P -q -r -R -s -S -t -T -u -U -v -V -w -x -z' -- "$cur"))
    fi
} &&
    complete -F _lilo lilo

# ex: filetype=sh