Add initial slapt-get completion

not all options work properly now:
--install and --install-set should be improved
This commit is contained in:
Igor Murzov 2010-07-05 02:08:42 +04:00
parent 89356d0728
commit b1b192cac9

View File

@ -12,3 +12,51 @@ _rpm2tgz()
COMPREPLY=( $(compgen -f -X "!*.rpm" -- "$cur") )
} && complete -F _rpm2tgz -o plusdirs rpm2tgz rpm2targz
have slapt-get && [ -f /etc/slackware-version ] &&
_slapt-get()
{
COMPREPLY=()
local cur prev
_get_comp_words_by_ref cur prev
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '--download-only -d --simulate -s \
--no-prompt -y --prompt -p --reinstall --ignore-excludes \
--no-md5 --ignore-dep --no-dep --print-uris --show-stats -S \
--config -c --remove-obsolete --retry --no-upgrade \
--update -u --upgrade --dist-upgrade --install -i --install-set \
--remove --show --filelist --search --list --available \
--installed --clean --autoclean --add-keys --version' \
-- "$cur" ) )
return 0
fi
case $prev in
--config|-c)
_filedir
return 0
;;
--retry|--search)
# argument required but no completions available
return 0
;;
--install|-i|--show|--filelist)
COMPREPLY=( $( slapt-get --search "^$cur" 2> /dev/null | \
awk '{print $1}' ) )
return 0
;;
--install-set)
COMPREPLY=( $( compgen -W 'a ap d e f k kde kdei l n t tcl x \
xap y' -- "$cur" ) )
return 0
;;
--remove)
COMPREPLY=( $( (cd /var/log/packages; compgen -f -- "$cur") ) )
return 0
;;
esac
COMPREPLY=( $( slapt-get --search "^$cur" 2> /dev/null | \
awk '{print $1}' ) )
} && complete -F _slapt-get slapt-get