summaryrefslogtreecommitdiffstats
path: root/completions/_chsh
blob: 4e243ba024a3b293015fbe83fad5316fd217cb1d (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
# chsh(1) completion                                       -*- shell-script -*-

# Use of this file is deprecated on Linux systems whose chsh is from
# util-linux. Upstream completion is in util-linux >= 2.23, use that instead.

_comp_cmd_chsh()
{
    local cur prev words cword comp_args
    _comp_initialize -- "$@" || return

    local word chroot="" has_chroot=""
    for word in "${words[@]}"; do
        if [[ $has_chroot ]]; then
            chroot=$word
            break
        fi
        [[ $word != -@(R|-root) ]] || has_chroot=set
    done

    case $prev in
        --list-shells | --help | -v | --version)
            return
            ;;
        -R | --root)
            _comp_compgen_filedir -d
            return
            ;;
        -s | --shell)
            _comp_compgen_shells "${chroot-}"
            return
            ;;
    esac

    if [[ $cur == -* ]]; then
        _comp_compgen_help || _comp_compgen_usage
    else
        _comp_compgen_allowed_users
    fi

} &&
    complete -F _comp_cmd_chsh chsh

# ex: filetype=sh