# bash completion for cvsps

have cvsps &&
_cvsps()
{
    COMPREPLY=()
    local cur prev
    _get_comp_words_by_ref -n : cur prev

    case $prev in
        -h|-z|-f|-d|-l|--diff-opts|--debuglvl)
            return 0
            ;;
        -s)
            COMPREPLY=( $( compgen -W "$( cvsps 2>/dev/null |
                awk '/^PatchSet:?[ \t]/ { print $2 }' )" -- "$cur" ) )
            return 0
            ;;
        -a)
            COMPREPLY=( $( compgen -W "$( cvsps 2>/dev/null |
                awk '/^Author:[ \t]/ { print $2 }' )" -- "$cur" ) )
            return 0
            ;;
        -b)
            COMPREPLY=( $( compgen -W "$( cvsps 2>/dev/null |
                awk '/^Branch:[ \t]/ { print $2 }' )" -- "$cur" ) )
            return 0
            ;;
        -r)
            COMPREPLY=( $( compgen -W "$( cvsps 2>/dev/null |
                awk '/^Tag:[ \t]+[^(]/ { print $2 }' )" -- "$cur" ) )
            return 0
            ;;
        -p)
            _filedir -d
            return 0
            ;;
        --test-log)
            _filedir
            return 0
            ;;
        -Z)
            COMPREPLY=( $( compgen -W '1 2 3 4 5 6 7 8 9' -- "$cur" ) )
            return 0
            ;;
        --root)
            type _cvs_roots &>/dev/null && _cvs_roots
            return 0
            ;;
    esac

    if [[ "$cur" == -* ]] ; then
        COMPREPLY=( $( compgen -W '-h -x -u -z -g -s -a -f -d -b -l -r -p -v \
            -t --norc --summary-first --test-log --diff-opts --bkcvs --no-rlog \
            --cvs-direct --no-cvs-direct --debuglvl -Z --root -q -A' \
            -- "$cur" ) )
    else
        type _cvs_roots &>/dev/null && _cvs_roots
    fi
} &&
complete -F _cvsps cvsps

# Local variables:
# mode: shell-script
# sh-basic-offset: 4
# sh-indent-comment: t
# indent-tabs-mode: nil
# End:
# ex: ts=4 sw=4 et filetype=sh
