# pkg-get(8) completion by Simone Rota
# derived form Johannes Winkelmann's prt-get completion 
# problems: options ending on = should not add a space afterwards

_pkg-get()
{
        local cur prev

        COMPREPLY=()
        cur=${COMP_WORDS[COMP_CWORD]}
        prev=${COMP_WORDS[COMP_CWORD-1]}

        if [ $COMP_CWORD -eq 1 ]; then
                COMPREPLY=( $( compgen -W ' \
                    install depinst update help \
                    version readme list info path \
                    search dsearch printf sync \
                    dependent sysup current lock unlock \
                    listlocked diff quickdiff depends quickdep \
                    dup isinst remove listinst' $cur ))
        fi

       
        if [ $COMP_CWORD '>' 1 ]; then
            if [[ "$cur" != -* ]]; then
                case ${COMP_WORDS[1]} in
                    "install" | "depinst" | "path" | "dependent" | \
                    "depends" | "quickdep" | "info" | "readme" | "isinst" )
                            plist=`pkg-get list`
                            if [ -n "$plist" ]; then
                                COMPREPLY=( $( compgen -W '$plist' $cur ) )
                            fi
                            ;;
                    "current"|"lock"|"remove")
                            plist=`pkg-get listinst`
                            COMPREPLY=( $( compgen -W '$plist' $cur ) )
                            ;;
                    "update")
                            plist=`pkg-get quickdiff`
                            COMPREPLY=( $( compgen -W '$plist' $cur ) )
                            ;;
                    "unlock")
                            plist=`pkg-get listlocked`
                            COMPREPLY=( $( compgen -W '$plist' $cur ) )
                            ;;
                esac
            else
                case ${COMP_WORDS[1]} in
                    "install" | "sysup")
                        COMPREPLY=( $( compgen -W  '-do \
                                                    -im \
                                                    --pre-install \
                                                    --post-install \
                                                    --install-scripts' \
                                                    -- $cur ) )
                        ;;
                    "update") 
                        COMPREPLY=( $( compgen -W  '-do \
                                                    -im \
                                                    -fr \
                                                    --pre-install \
                                                    --pre-install \
                                                    --post-install \
                                                    --install-scripts' \
                                                    -- $cur ) )
                        ;;
                    "dependent" )
                        COMPREPLY=( $( compgen -W '--all' -- $cur ) )
                        ;;
                    "printf" )
                        COMPREPLY=( $( compgen -W '--filter=' -- $cur ) )
                        ;;
                esac
            fi
        fi

        return 0
}
complete -F _pkg-get -o default pkg-get