#!/bin/sh -e

if [ -r "/etc/sie-dnsdb-query.conf" ]; then
    . /etc/sie-dnsdb-query.conf
fi

if [ -r "$HOME/.sie-dnsdb-query.conf" ]; then
    . $HOME/.sie-dnsdb-query.conf
fi

if [ -z "$APIKEY" ]; then
    echo "$0: APIKEY not defined in /etc/sie-dnsdb-query.conf or $HOME/.sie-dnsdb-query.conf"
    exit 1
fi

if [ -z "$DNSDB_SERVER" ]; then
    DNSDB_SERVER="dnsdb-api.int.sie.isc.org"
fi

if [ -z "$CURL" ]; then
    CURL="curl"
fi

DNSDB_RRSET_LOOKUP="http://${DNSDB_SERVER}/lookup/rrset"
DNSDB_RDATA_LOOKUP="http://${DNSDB_SERVER}/lookup/rdata"

usage() {
    echo "Usage: $0 rrset <ONAME>[/<RRTYPE>[/<BAILIWICK>]]"
    echo "Usage: $0 rdata ip <IPADDRESS>"
    echo "Usage: $0 rdata name <NAME>[/<RRTYPE>]"
    echo "Usage: $0 rdata raw <HEX>[/<RRTYPE>]"
    exit 1
}

case "$1" in
    rrset)
        oname="$2"
        if [ -z "$oname" ]; then
            usage
        fi
        $CURL -H "X-API-Key: ${APIKEY}" ${DNSDB_RRSET_LOOKUP}/name/$oname
        ;;

    rdata)
        lookup_type="$2"
        rdata="$3"
        if [ -z "$lookup_type" -o -z "$rdata" ]; then
            usage
        fi
        case "$lookup_type" in
            ip)
                rdata="$(echo $rdata | sed -e 's#/#,#')"
                ;;
        esac
        case "$lookup_type" in
            ip|name|raw)
                $CURL -H "X-API-Key: ${APIKEY}" ${DNSDB_RDATA_LOOKUP}/$lookup_type/$rdata
                ;;
            *)
                usage
                ;;
        esac
        ;;

    *)
        usage
        ;;
esac
