Subversion Repositories configs

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
59 - 1
# Completions for various core utilities
2
 
3
# chown(1) completion
4
#
5
have chown &&
6
_chown()
7
{
8
    local cur prev split=false
9
 
10
    # Get cur and prev words; but don't treat user:group as separate words.
11
    _get_comp_words_by_ref -n : cur prev
12
 
13
    _split_longopt && split=true
14
 
15
    case "$prev" in
16
        --from)
17
            _usergroup
18
            return 0
19
            ;;
20
        --reference)
21
            _filedir
22
            return 0
23
            ;;
24
    esac
25
 
26
    $split && return 0
27
 
28
    if [[ "$cur" == -* ]]; then
29
        # Complete -options
30
        local w opts
31
        for w in "${COMP_WORDS[@]}" ; do
32
            [[ "$w" == -@(R|-recursive) ]] && opts="-H -L -P" && break
33
        done
34
        COMPREPLY=( $( compgen -W '-c -h -f -R -v --changes --dereference \
35
            --no-dereference --from --silent --quiet --reference --recursive \
36
            --verbose --help --version $opts' -- "$cur" ) )
37
    else
38
        local args
39
 
40
        # The first argument is an usergroup; the rest are filedir.
41
        _count_args :
42
 
43
        if [[ $args == 1 ]]; then
44
            _usergroup -u
45
        else
46
            _filedir
47
        fi
48
    fi
49
} &&
50
complete -F _chown chown
51
 
52
 
53
# chgrp(1) completion
54
#
55
have chgrp &&
56
_chgrp()
57
{
58
    local cur prev split=false
59
 
60
    COMPREPLY=()
61
    _get_comp_words_by_ref cur prev
62
    cur=${cur//\\\\/}
63
 
64
    _split_longopt && split=true
65
 
66
    if [[ "$prev" == --reference ]]; then
67
        _filedir
68
        return 0
69
    fi
70
 
71
    $split && return 0
72
 
73
    # options completion
74
    if [[ "$cur" == -* ]]; then
75
        local w opts
76
        for w in "${COMP_WORDS[@]}" ; do
77
            [[ "$w" == -@(R|-recursive) ]] && opts="-H -L -P" && break
78
        done
79
        COMPREPLY=( $( compgen -W '-c -h -f -R -v --changes --dereference \
80
            --no-dereference --silent --quiet --reference --recursive \
81
            --verbose --help --version $opts' -- "$cur" ) )
82
        return 0
83
    fi
84
 
85
    # first parameter on line or first since an option?
86
    if [[ $COMP_CWORD -eq 1 && "$cur" != -* || "$prev" == -* ]]; then
87
        _allowed_groups
88
    else
89
        _filedir || return 0
90
    fi
91
 
92
    return 0
93
} &&
94
complete -F _chgrp chgrp
95
 
96
# id(1) completion
97
#
98
have id &&
99
_id()
100
{
101
    local cur
102
 
103
    COMPREPLY=()
104
    _get_comp_words_by_ref cur
105
 
106
    if [[ "$cur" == -* ]]; then
107
        COMPREPLY=( $( compgen -W '-a -g --group -G --groups -n --name\
108
            -r --real -u --user --help --version' -- "$cur" ) )
109
    else
110
        COMPREPLY=( $( compgen -u "$cur" ) )
111
    fi
112
} &&
113
complete -F _id id
114
 
115
# mktemp(1) completion
116
#
117
have mktemp &&
118
_mktemp()
119
{
120
    COMPREPLY=()
121
    local cur prev split=false
122
    _get_comp_words_by_ref cur prev
123
 
124
    _split_longopt && split=true
125
 
126
    case "$prev" in
127
        --help|--version|--suffix)
128
            return 0
129
            ;;
130
        --tmpdir|-p)
131
            _filedir -d
132
            return 0
133
            ;;
134
    esac
135
 
136
    $split && return 0
137
 
138
    [[ "$cur" == -* ]] && \
139
        COMPREPLY=( $( compgen -W '-d -u -q -p -t' -- "$cur" ) )
140
} &&
141
complete -F _mktemp mktemp
142
 
143
# Local variables:
144
# mode: shell-script
145
# sh-basic-offset: 4
146
# sh-indent-comment: t
147
# indent-tabs-mode: nil
148
# End:
149
# ex: ts=4 sw=4 et filetype=sh