aboutsummaryrefslogtreecommitdiffstats
path: root/bash-completion
diff options
context:
space:
mode:
Diffstat (limited to 'bash-completion')
-rwxr-xr-xbash-completion/mgarepo98
1 files changed, 98 insertions, 0 deletions
diff --git a/bash-completion/mgarepo b/bash-completion/mgarepo
new file mode 100755
index 0000000..e27f12f
--- /dev/null
+++ b/bash-completion/mgarepo
@@ -0,0 +1,98 @@
+# 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 upload del up' -- $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)
+ options="-r --distribution \
+ --branch --spec --no-mirror"
+ ;;
+ ci)
+ options="-m -F"
+ ;;
+ sync)
+ options="-c --dry-run --download"
+ ;;
+ submit)
+ options="-t -l -r -s -i -a --distro --define"
+ ;;
+ putsrpm)
+ 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"
+ ;;
+ esac
+ options="$options --help"
+ COMPREPLY=( $( compgen -W "$options" -- $cur ) )
+ else
+ case $command in
+ putsrpm)
+ _filedir 'src.rpm'
+ return 0
+ ;;
+ @(del|upload))
+ _filedir
+ return 0
+ ;;
+ @(co|getspec|rpmlog|getsrpm|changed))
+ _cauldron_packages
+ return 0
+ ;;
+ maintdb)
+ COMPREPLY=( $( compgen -W "get set" -- $cur ) )
+ return 0
+ ;;
+ @(sync|ci))
+ _filedir -d
+ return 0
+ ;;
+ esac
+ fi
+ fi
+}
+complete -F _mgarepo $filenames mgarepo
+complete -F _mgarepo $filenames mgarepo-ssh