summaryrefslogtreecommitdiff
blob: ae45744941ed36086a0c66c666f5c60d92e0dbcb (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
# Gentoo Linux Bash Shell Command Completion
#
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later

#
# rc-update completion command
#
_rcupdate()
{
    local cur show
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    if [[ $COMP_CWORD -eq 1 ]]; then
    if [[ "${cur}" == -* ]]; then
        COMPREPLY=($(compgen -W '-a -d -s' -- ${cur}))
    else
        COMPREPLY=($(compgen -W 'add del show' ${cur}))
    fi
    else
        if [[ "${COMP_WORDS[1]}" == "show" ]] || [[ "${COMP_WORDS[1]}" == "-s" ]]; then
        show="TRUE"
    fi
    if ([[ $COMP_CWORD -eq 3 ]] && [[ -z "$show" ]]) || \
            ([[ $COMP_CWORD -eq 2 ]] && [[ -n "$show" ]])
        then
        COMPREPLY=($(compgen -W "$(for i in @GENTOO_PORTAGE_EPREFIX@/etc/runlevels/*; do echo ${i##*/}; done)" -- $cur))
    elif [[ $COMP_CWORD -eq 2 ]]; then
        COMPREPLY=($(compgen -X "*.@(c|sh|test)" -W "$(for i in @GENTOO_PORTAGE_EPREFIX@/etc/init.d/*; do echo ${i##*/}; done)" $cur))
    elif [[ ${#COMP_WORDS[*]} -gt 2 ]] ; then
        COMPREPLY=($(compgen -W "$(for i in @GENTOO_PORTAGE_EPREFIX@/etc/runlevels/*; do echo ${i##*/}; done)" -- $cur))
    else
        unset COMPREPLY
    fi
    fi
    return 0
} &&
complete -F _rcupdate rc-update

# vim: ft=sh:et:ts=4:sw=4:tw=80