richard@261: __razor_commands () { richard@261: local IFS=$'\n' jbowes@290: COMPREPLY=($(IFS=: compgen -S' ' -W "info:list-requires:list-provides:list-files:list-file-packages:list-package-files:what-requires:what-provides:import-yum:import-rpmdb:import-rpms:validate:update:diff:install:init:download" -- $1)) richard@261: } richard@261: richard@261: __razor_packages () { richard@261: local IFS=$'\n' richard@261: richard@261: COMPREPLY=($(razor list --only-names "$1*" | while read p; do echo "$p "; done)) richard@261: } richard@261: richard@261: __razor_upstream_packages () { richard@261: local IFS=$'\n' richard@261: richard@310: COMPREPLY=($(RAZOR_REPO=rawhide.rzdb razor list --only-names "$1*" | while read p; do echo "$p "; done)) richard@261: } richard@261: richard@261: __razor_files() { richard@261: COMPREPLY=($(razor list-files "$1*")) richard@261: } richard@261: richard@261: __razor_requires() { richard@261: COMPREPLY=($(compgen -W "$(razor list-requires)" -- $1)) richard@261: } richard@261: richard@261: __razor_provides() { richard@261: COMPREPLY=($(compgen -W "$(razor list-provides)" -- $1)) richard@261: } richard@261: richard@261: __razor() { richard@261: local cur="${COMP_WORDS[COMP_CWORD]}" richard@261: richard@261: if [ $COMP_CWORD = 1 ]; then richard@261: __razor_commands $cur richard@261: else richard@261: case "${COMP_WORDS[1]}" in richard@261: info|list-requires|list-provides|list-package-files) richard@261: __razor_packages $cur ;; richard@261: list-files|list-file-packages) __razor_files $cur ;; richard@261: what-requires) __razor_requires $cur ;; richard@261: what-provides) __razor_provides $cur ;; richard@261: install|download) __razor_upstream_packages $cur ;; richard@261: esac richard@261: fi richard@261: } richard@261: richard@261: complete -o nospace -F __razor razor