summaryrefslogtreecommitdiff
path: root/completions/_udevadm
blob: 51ec0e5d0287f8397dace727012a0c16e73f2eee (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
67
68
69
70
71
72
73
74
75
76
77
78
79
# udevadm(8) completion                                    -*- shell-script -*-

# Use of this file is deprecated.  Upstream completion is available in
# systemd >= 196, use that instead.

_udevadm()
{
    local cur prev words cword split
    _init_completion -s || return

    local i udevcmd
    for (( i=1; i < cword; i++ )); do
        if [[ ${words[i]} != -* ]]; then
            udevcmd=${words[i]}
            break
        fi
    done

    case $prev in
        --help|--version|--property|--children-max|--timeout|--seq-start|\
        --seq-end|--attr-match|--attr-nomatch|--parent-match|--property-match|\
        --tag-match|--subsystem-match|--subsystem-nomatch|--sysname-match|\
        --path)
            return
            ;;
        --log-priority)
            COMPREPLY=( $( compgen -W 'err info debug' -- "$cur" ) )
            return
            ;;
        --query)
            COMPREPLY=( $( compgen -W 'name symlink path property all' \
                -- "$cur" ) )
            return
            ;;
        --name)
            cur=${cur:=/dev/}
            _filedir
            return
            ;;
        --device-id-of-file|--exit-if-exists)
            _filedir
            return
            ;;
        --action)
            COMPREPLY=( $( compgen -W 'add change remove' -- "$cur" ) )
            return
            ;;
        --type)
            COMPREPLY=( $( compgen -W 'devices subsystems failed' -- "$cur" ) )
            return
            ;;
    esac

    $split && return

    if [[ -z $udevcmd ]]; then
        case $cur in
            -*)
                COMPREPLY=( $( compgen -W '--help --version --debug' -- \
                    "$cur" ) )
                ;;
            *)
                COMPREPLY=( $( compgen -W "$( "$1" --help 2>/dev/null |
                    awk '/^[[:space:]]+/ { print $1 }' )" -- "$cur" ) )
                ;;
        esac
        return
    fi

    if [[ $cur == -* ]]; then
        COMPREPLY=( $( compgen -W \
            '$( "$1" $udevcmd --help 2>/dev/null | _parse_help - )' \
            -- "$cur" ) )
        [[ $COMPREPLY == *= ]] && compopt -o nospace
    fi
} &&
complete -F _udevadm udevadm

# ex: ts=4 sw=4 et filetype=sh