[Bash-completion-commits] [SCM] bash-completion branch, master, updated. 508a88e6c0851790831f37c42270e869e44308c0
Ville Skyttä
ville.skytta at iki.fi
Sun May 31 20:53:09 UTC 2009
The following commit has been merged in the master branch:
commit 508a88e6c0851790831f37c42270e869e44308c0
Author: Ville Skyttä <ville.skytta at iki.fi>
Date: Sun May 31 23:52:47 2009 +0300
Add mock completion.
diff --git a/CHANGES b/CHANGES
index ee377b0..e690f90 100644
--- a/CHANGES
+++ b/CHANGES
@@ -56,6 +56,7 @@ bash-completion (1.x)
* Split reportbug and querybts completions to contrib/reportbug.
* Remove debug output noise from quotaon completion.
* Split Linux wireless tools completion to contrib/wireless-tools.
+ * Add mock completion.
[ Todd Zullinger ]
* Make yum complete on filenames after install, deplist, update and upgrade
diff --git a/Makefile.am b/Makefile.am
index 1c78d37..d73b912 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -55,6 +55,7 @@ bashcomp_DATA = contrib/ant \
contrib/mcrypt \
contrib/minicom \
contrib/mkinitrd \
+ contrib/mock \
contrib/modules \
contrib/monodevelop \
contrib/mplayer \
diff --git a/contrib/mock b/contrib/mock
new file mode 100644
index 0000000..933d531
--- /dev/null
+++ b/contrib/mock
@@ -0,0 +1,78 @@
+# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
+# ex: ts=8 sw=8 noet filetype=sh
+#
+# bash completion for mock
+
+have mock &&
+_mock()
+{
+ local cur prev plugins cfgdir split=false
+
+ COMPREPLY=()
+ cur=`_get_cword`
+ prev=${COMP_WORDS[COMP_CWORD-1]}
+ plugins='tmpfs root_cache yum_cache bind_mount ccache'
+ cfgdir=/etc/mock
+
+ count=0
+ for i in "${COMP_WORDS[@]}" ; do
+ [ $count -eq $COMP_CWORD ] && break
+ if [[ "$i" == --configdir ]] ; then
+ cfgdir="${COMP_WORDS[((count+1))]}"
+ elif [[ "$i" == --configdir=* ]] ; then
+ cfgdir=${i/*=/}
+ fi
+ count=$((++count))
+ done
+
+ _split_longopt && split=true
+
+ case $prev in
+ -@(h|-help|-copy@(in|out)|-arch|D|-define|-with?(out)|-uniqueext|-rpmbuild_timeout|-sources|-cwd))
+ return 0
+ ;;
+ -r|--root)
+ COMPREPLY=( $( command ls $cfgdir | \
+ sed -ne 's/^\('$cur'.*\)\.cfg$/\1/p') )
+ return 0
+ ;;
+ --@(config|result)dir)
+ _filedir -d
+ return 0
+ ;;
+ --spec)
+ _filedir spec
+ return 0
+ ;;
+ --target)
+ # Yep, compatible archs, not compatible build archs
+ # (e.g. ix86 chroot builds in x86_64 mock host)
+ # This would actually depend on what the target root
+ # can be used to build for...
+ COMPREPLY=( $( compgen -W "$( command rpm --showrc | sed -ne 's/^\s*compatible\s\+archs\s*:\s*\(.*\)/\1/i p' )" -- $cur ) )
+ return 0
+ ;;
+ --@(en|dis)able-plugin)
+ COMPREPLY=( $( compgen -W "$plugins" -- $cur ) )
+ return 0
+ ;;
+ esac
+
+ $split && return 0
+
+ if [[ "$cur" == -* ]] ; then
+ COMPREPLY=( $( compgen -W '--version -h --help --rebuild \
+ --buildsrpm --shell --chroot --clean --init \
+ --installdeps --install --update --orphanskill \
+ --copyin --copyout -r --root --offline --no-clean \
+ --cleanup-after --no-cleanup-after --arch --target \
+ -D --define --with --without --resultdir --uniqueext \
+ --configdir --rpmbuild_timeout --unpriv --cwd --spec \
+ --sources -v --verbose -q --quiet --trace \
+ --enable-plugin --disable-plugin --print-root-path' \
+ -- $cur ) )
+ else
+ _filedir '?(no)src.rpm'
+ fi
+} &&
+complete -F _mock $filenames mock
--
bash-completion
More information about the Bash-completion-commits
mailing list