summaryrefslogtreecommitdiffstats
path: root/completions/_mock
diff options
context:
space:
mode:
Diffstat (limited to 'completions/_mock')
-rw-r--r--completions/_mock69
1 files changed, 69 insertions, 0 deletions
diff --git a/completions/_mock b/completions/_mock
new file mode 100644
index 0000000..b468148
--- /dev/null
+++ b/completions/_mock
@@ -0,0 +1,69 @@
+# bash completion for mock -*- shell-script -*-
+
+# Use of this file is deprecated. Upstream completion is available in
+# mock > 1.1.0, use that instead.
+
+_mock()
+{
+ local cur prev words cword split
+ _init_completion -s || return
+
+ local plugins='tmpfs root_cache yum_cache bind_mount ccache'
+ local cfgdir=/etc/mock count=0 i
+
+ for i in "${words[@]}"; do
+ ((count == cword)) && break
+ if [[ $i == --configdir ]]; then
+ cfgdir="${words[count + 1]}"
+ elif [[ $i == --configdir=* ]]; then
+ cfgdir=${i/*=/}
+ fi
+ ((count++))
+ done
+
+ case $prev in
+ -h | --help | --copyin | --copyout | --arch | -D | --define | --with | --without | \
+ --uniqueext | --rpmbuild_timeout | --sources | --cwd)
+ return
+ ;;
+ -r | --root)
+ COMPREPLY=($(compgen -W "$(command ls $cfgdir)" -- "$cur"))
+ COMPREPLY=(${COMPREPLY[@]/%.cfg/})
+ return
+ ;;
+ --configdir | --resultdir)
+ _filedir -d
+ return
+ ;;
+ --spec)
+ _filedir spec
+ return
+ ;;
+ --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 |
+ command sed -ne 's/^\s*compatible\s\s*archs\s*:\s*\(.*\)/\1/i p')" \
+ -- "$cur"))
+ return
+ ;;
+ --enable-plugin | --disable-plugin)
+ COMPREPLY=($(compgen -W "$plugins" -- "$cur"))
+ return
+ ;;
+ esac
+
+ $split && return
+
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
+ [[ ${COMPREPLY-} == *= ]] && compopt -o nospace
+ else
+ _filedir '@(?(no)src.r|s)pm'
+ fi
+} &&
+ complete -F _mock mock
+
+# ex: filetype=sh