Blame | Last modification | View Log | RSS feed
# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
# ex: ts=8 sw=8 noet filetype=sh
#
# bash completion for rpmdevtools
# Requires bash-completion >= 20080705 (for _get_cword)
# TODO: rpmdev-diff, rpmdev-vercmp
_rpmdev_rpmfiles()
{
local cur=${cur:-`_get_cword`}
_filedir '[rs]pm'
}
_rpmdev_archives()
{
local cur=${cur:-`_get_cword`}
_filedir '@([rs]pm|deb|zip|?([ejtw])ar|tzo|[glx7]z|bz2|lzma|cpio|arj|zoo|cab|rar|ace|lha)'
}
_rpmdev_specfiles()
{
local cur=${cur:-`_get_cword`}
_filedir spec
}
complete -F _rpmdev_rpmfiles -o filenames rpmdev-checksig
complete -F _rpmdev_archives -o filenames \
rpmdev-{cksum,md5,sha{1,224,256,384,512},sum}
_spectool()
{
COMPREPLY=()
for i in ${COMP_WORDS[@]} ; do
[[ "$i" == -@(h|-help) ]] && return 0
done
local cur=`_get_cword`
case $3 in
-@(C|-directory))
_filedir -d
return 0
;;
-@(s|-source|p|-patch|d|-define))
# TODO: do better with these
return 0
;;
esac
if [[ "$cur" == -* ]] ; then
COMPREPLY=( $( compgen -W '-l --lf --list-files -g --gf \
--get-files -h --help -A --all -S --sources -P \
--patches -s --source -p --patch -d --define -C \
--directory -R --sourcedir -n --dryrun --dry-run \
-D --debug' -- $cur ) )
else
_rpmdev_specfiles
fi
}
complete -F _spectool -o filenames spectool
_rpmdev_bumpspec()
{
COMPREPLY=()
for i in ${COMP_WORDS[@]} ; do
[[ "$i" == -@(h|-help|v|-version) ]] && return 0
done
[[ $3 == -@(c|-comment|u|-userstring) ]] && return 0
local cur=`_get_cword`
if [[ "$cur" == -* ]] ; then
COMPREPLY=( $( compgen -W '-h --help -c --comment -u \
--userstring -r --rightmost -V --verbose -v \
--version' -- $cur ) )
else
_rpmdev_specfiles
fi
}
complete -F _rpmdev_bumpspec -o filenames rpmdev-bumpspec
_rpmdev_rmdevelrpms()
{
COMPREPLY=()
for i in ${COMP_WORDS[@]} ; do
[[ "$i" == -@(h|-help|v|-version) ]] && return 0
done
[[ $3 == --@(qf|queryformat) ]] && return 0
COMPREPLY=( $( compgen -W '-h --help -l --list-only -y --yes \
-v --version --qf --queryformat' -- `_get_cword` ) )
}
complete -F _rpmdev_rmdevelrpms rpmdev-rmdevelrpms
_rpmdev_setuptree()
{
local cur=`_get_cword`
if [[ "$cur" == -* ]] ; then
COMPREPLY=( $( compgen -W '-d' -- $cur ) )
fi
}
complete -F _rpmdev_setuptree rpmdev-setuptree
_rpmls()
{
COMPREPLY=()
local cur=`_get_cword`
if [[ "$cur" == -* ]] ; then
COMPREPLY=( $( compgen -W '-l' -- $cur ) )
return 0
fi
[[ "$cur" == */* ]] || _rpm_installed_packages
_rpmdev_rpmfiles
}
complete -F _rpmls -o filenames rpmls
_rpmdev_newspec()
{
COMPREPLY=()
for i in ${COMP_WORDS[@]} ; do
[[ "$i" == -@(h|-help|v|-version) ]] && return 0
done
local cur=`_get_cword`
case $3 in
-o|--output)
_filedir spec
return 0
;;
-t|--type)
COMPREPLY=( $( command ls /etc/rpmdevtools/spectemplate-*.spec 2>/dev/null ) )
COMPREPLY=( ${COMPREPLY[@]%.spec} )
COMPREPLY=( ${COMPREPLY[@]#/etc/rpmdevtools/spectemplate-} )
COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- $cur ) )
return 0
;;
esac
if [[ "$cur" == -* ]] ; then
COMPREPLY=( $( compgen -W '-t --type -o --output -m --macros \
-h --help -v --version' -- $cur ) )
return 0
fi
_filedir spec
}
complete -F _rpmdev_newspec -o filenames rpmdev-newspec
_rpminfo()
{
COMPREPLY=()
for i in ${COMP_WORDS[@]} ; do
[[ "$i" == -@(h|-help) ]] && return 0
done
local cur=`_get_cword`
case $3 in
-o|--output)
_filedir
return 0
;;
-T|--tmp-dir)
_filedir -d
return 0
;;
esac
if [[ "$cur" == -* ]] ; then
COMPREPLY=( $( compgen -W '-h --help -v --verbose -q --quiet
-qq -i --installed -e --executables -l --libraries -p
--pic -np --no_pic -P --pie -nP --no_pie -r --rpath -ro
--rpath_odd -s --split -t --test -o --output -T
--tmp-dir' -- $cur ) )
return 0
fi
[[ "$cur" == */* ]] || _rpm_installed_packages
_rpmdev_rpmfiles
}
complete -F _rpminfo -o filenames rpminfo
_rpmdev_extract()
{
COMPREPLY=()
for i in ${COMP_WORDS[@]} ; do
[[ "$i" == -@(h|v) ]] && return 0
done
local cur=`_get_cword`
if [[ $3 == -C ]] ; then
_filedir -d
return 0
fi
if [[ "$cur" == -* ]] ; then
COMPREPLY=( $( compgen -W '-q -f -C -h -v' -- $cur ) )
return 0
fi
_rpmdev_archives
}
complete -F _rpmdev_extract -o filenames rpmdev-extract