aboutsummaryrefslogtreecommitdiffstats
path: root/bash-completion/mgarepo
blob: fb7221b0255d430f05476d442e472bdb402aad90 (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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# mgarepo(1) completion
#
_cauldron_packages()
{
    COMPREPLY=( $( compgen -W "$(wget -O- \
        http://pkgsubmit.mageia.org/data/maintdb.txt 2>/dev/null | \
        cut -d ' ' -f 1)" -- $cur ) )
}

_mgarepo_actions()
{
    COMPREPLY=( $( compgen -W 'co ci sync \
        submit putsrpm getspec rpmlog getsrpm maintdb create changed \
        authoremail switch markrelease upload del up obsolete checkout \
        commit import' -- $cur ) )
}

_mgarepo()
{
    local cur prev command options i

    COMPREPLY=()
    cur=${COMP_WORDS[COMP_CWORD]}
    if [[ $COMP_CWORD -eq 1 ]] ; then
        if [[ "$cur" == -* ]]; then
            COMPREPLY=( $( compgen -W "--help" -- $cur ) )
        else
            _mgarepo_actions
        fi
    else
        prev=${COMP_WORDS[COMP_CWORD-1]}
        case "$prev" in
            @(get|set))
                _cauldron_packages
                return 0
                ;;
            -@(F))
                _filedir
                return 0
                ;;
        esac

        command=${COMP_WORDS[1]}
        if [[ "$cur" == -* ]]; then
            # possible options for the command
            case $command in
                co|checkout)
                    options="-r --distribution --branch --spec --no-mirror"
                    ;;
                ci|commit)
                    options="-m -F"
                    ;;
                sync)
                    options="-c --dry-run --download"
                    ;;
                submit)
                    options="-t -l -r -s -i -a --distro --define"
                    ;;
                putsrpm|import) 
                    options="-l -t -b -d -c -s -n"
                    ;;
                getsrpm)
                    options="-c -p -v -r -t -P -s -n -l -T -M --strict"
                    ;;
                changed)
                    options="-a -s -M"
                    ;;
                markrelease)
                    options="-f -r -v -n"
                    ;;
                obsolete)
                    options="-m"
                    ;;
            esac
            options="$options --help"
            COMPREPLY=( $( compgen -W "$options" -- $cur ) )
        else
            case $command in
                putsrpm|import)
                    _filedir 'src.rpm'
                    return 0
                    ;;
                del|upload)
                    _filedir
                    return 0
                    ;;
                co|checkout|getspec|rpmlog|getsrpm|changed|obsolete)
                    _cauldron_packages
                    return 0
                    ;;
                maintdb)
                    COMPREPLY=( $( compgen -W "get set" -- $cur ) )
                    return 0
                    ;;
                sync|ci|commit)
                    _filedir -d
                    return 0
                    ;;
            esac
        fi
    fi
}
complete -F _mgarepo $filenames mgarepo 
complete -F _mgarepo $filenames mgarepo-ssh