aboutsummaryrefslogtreecommitdiffstats
path: root/bash-completion/mgarepo
blob: 7440e64ba3754eaa79154e1d7d4e9e56f549baa6 (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
105
# 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