__razor_commands () {
    COMPREPLY=($(compgen -W "list-requires list-provides list-files list-file-packages what-requires what-provides import-yum import-rpmdb validate update diff" -- $1))
}

__razor_packages () {
    COMPREPLY=($(compgen -W "$(./razor list)" -- $1))
}

__razor_files() {
    COMPREPLY=($(compgen -W "$(./razor list-files)" -- $1))
}

__razor_requires() {
    echo requires
    COMPREPLY=($(compgen -W "$(./razor list-requires)" -- $1))
}

__razor_provides() {
    COMPREPLY=($(compgen -W "$(./razor list-provides)" -- $1))
}

__razor() {
    local cur="${COMP_WORDS[COMP_CWORD]}"

    if [ $COMP_CWORD = 1 ]; then
	__razor_commands $cur
    else
	case "${COMP_WORDS[1]}" in
	    list-requires|list-provides) __razor_packages $cur ;;
	    list-files|list-file-packages) __razor_files $cur ;;
	    what-requires) __razor_requires $cur ;;
	    what-provides) __razor_provides $cur ;;
	esac
    fi
}

complete -F __razor razor
