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

_mqtt_message_timestamp_logger()
{
    local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
    # --option=value: bash splits at the =
    if [[ $cur == = ]]; then
        cur=
    elif [[ $prev == = && $COMP_CWORD -ge 2 ]]; then
        prev=${COMP_WORDS[COMP_CWORD-2]}
    fi
    COMPREPLY=()

    case $prev in
        --mqtt-broker)
            mapfile -t COMPREPLY < <(compgen -A hostname -- "$cur")
            return
            ;;
        --db-filename | --mqtt-password-file | --ca-cert | --client-cert | --client-key)
            compopt -o filenames 2>/dev/null
            mapfile -t COMPREPLY < <(compgen -f -- "$cur")
            return
            ;;
        --mqtt-broker-port | --mqtt-username | --mqtt-password | --mqtt-topic | \
            --client-id | --history-retention-duration | --commit-interval)
            return
            ;;
    esac

    # no positional arguments: offer the options
    mapfile -t COMPREPLY < <(compgen -W '-h --help -V --version --db-filename
        --mqtt-broker --mqtt-broker-port --mqtt-username --mqtt-password-file
        --mqtt-password --tls --ca-cert --client-cert --client-key --insecure
        --mqtt-topic --client-id --history-retention-duration --commit-interval
        --verbose -v' -- "$cur")
}
complete -F _mqtt_message_timestamp_logger mqtt_message_timestamp_logger
