# bash completion for openldap                             -*- shell-script -*-

_ldap_uris()
{
    COMPREPLY=( $( compgen -W 'ldap:// ldaps://' -- "$cur" ) )
}

_ldap_protocols()
{
    COMPREPLY=( $( compgen -W '2 3' -- "$cur" ) )
}

_ldapsearch()
{
    local cur prev words cword
    _init_completion || return

    case $prev in
        -h)
            _known_hosts_real "$cur"
            return
            ;;
        -H)
            _ldap_uris
            return
            ;;
        -T)
            _filedir -d
            return
            ;;
        -f|-y)
            _filedir
            return
            ;;
        -s)
            COMPREPLY=( $( compgen -W 'base one sub children' -- "$cur" ) )
            return
            ;;
        -a)
            COMPREPLY=( $( compgen -W 'never always search find' \
                -- "$cur" ) )
            return
            ;;
        -P)
            _ldap_protocols
            return
            ;;
    esac

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) -MM -ZZ' -- "$cur" ) )
    fi
} &&
complete -F _ldapsearch ldapsearch

_ldapaddmodify()
{
    local cur prev words cword
    _init_completion || return

    case $prev in
        -h)
            _known_hosts_real "$cur"
            return
            ;;
        -H)
            _ldap_uris
            return
            ;;
        -S|-f|-y)
            _filedir
            return
            ;;
        -P)
            _ldap_protocols
            return
            ;;
    esac

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) -MM -ZZ' -- "$cur" ) )
    fi
} &&
complete -F _ldapaddmodify ldapadd ldapmodify

_ldapdelete()
{
    local cur prev words cword
    _init_completion || return

    case $prev in
        -h)
            _known_hosts_real "$cur"
            return
            ;;
        -H)
            _ldap_uris
            return
            ;;
        -f|-y)
            _filedir
            return
            ;;
        -P)
            _ldap_protocols
            return
            ;;
    esac

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) -MM -ZZ' -- "$cur" ) )
    fi
} &&
complete -F _ldapdelete ldapdelete

_ldapcompare()
{
    local cur prev words cword
    _init_completion || return

    case $prev in
        -h)
            _known_hosts_real "$cur"
            return
            ;;
        -H)
            _ldap_uris
            return
            ;;
        -y)
            _filedir
            return
            ;;
        -P)
            _ldap_protocols
            return
            ;;
    esac

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) -MM -ZZ' -- "$cur" ) )
    fi
} &&
complete -F _ldapcompare ldapcompare

_ldapmodrdn()
{
    local cur prev words cword
    _init_completion || return

    case $prev in
        -h)
            _known_hosts_real "$cur"
            return
            ;;
        -H)
            _ldap_uris
            return
            ;;
        -f|-y)
            _filedir
            return
            ;;
        -P)
            _ldap_protocols
            return
            ;;
    esac

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) -ZZ -MM' -- "$cur" ) )
    fi
} &&
complete -F _ldapmodrdn ldapmodrdn

_ldapwhoami()
{
    local cur prev words cword
    _init_completion || return

    case $prev in
        -h)
            _known_hosts_real "$cur"
            return
            ;;
        -H)
            _ldap_uris
            return
            ;;
        -f|-y)
            _filedir
            return
            ;;
        -P)
            _ldap_protocols
            return
            ;;
    esac

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) -MM -ZZ' -- "$cur" ) )
    fi
} &&
complete -F _ldapwhoami ldapwhoami

_ldappasswd()
{
    local cur prev words cword
    _init_completion || return

    case $prev in
        -h)
            _known_hosts_real "$cur"
            return
            ;;
        -H)
            _ldap_uris
            return
            ;;
        -t|-T|-y)
            _filedir
            return
            ;;
    esac

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" ) -MM -ZZ' -- "$cur" ) )
    fi
} &&
complete -F _ldappasswd ldappasswd

# ex: filetype=sh
