krh@53: __razor_commands () { krh@54: local IFS=$'\n' krh@56: COMPREPLY=($(IFS=: compgen -S' ' -W "list-requires:list-provides:list-files:list-file-packages:list-package-files:what-requires:what-provides:import-yum:import-rpmdb:validate:update:diff" -- $1)) krh@53: } krh@53: krh@53: __razor_packages () { krh@54: local IFS=$'\n' krh@54: krh@54: COMPREPLY=($(./razor list "$1*" | while read p; do echo "$p "; done)) krh@53: } krh@53: krh@53: __razor_files() { krh@54: COMPREPLY=($(./razor list-files "$1*")) krh@53: } krh@53: krh@53: __razor_requires() { krh@53: COMPREPLY=($(compgen -W "$(./razor list-requires)" -- $1)) krh@53: } krh@53: krh@53: __razor_provides() { krh@53: COMPREPLY=($(compgen -W "$(./razor list-provides)" -- $1)) krh@53: } krh@53: krh@53: __razor() { krh@53: local cur="${COMP_WORDS[COMP_CWORD]}" krh@53: krh@53: if [ $COMP_CWORD = 1 ]; then krh@53: __razor_commands $cur krh@53: else krh@53: case "${COMP_WORDS[1]}" in krh@56: list-requires|list-provides|list-package-files) krh@56: __razor_packages $cur ;; krh@53: list-files|list-file-packages) __razor_files $cur ;; krh@53: what-requires) __razor_requires $cur ;; krh@53: what-provides) __razor_provides $cur ;; krh@53: esac krh@53: fi krh@53: } krh@53: krh@54: complete -o nospace -F __razor razor