#!/bin/sh

. /usr/share/libubox/jshn.sh

while true; do
    json_load "$(bmx7 -c jshow=originators)"
    json_select "originators"
    idx="1"

    # clean all bmx7 dns entries
    > /tmp/hosts/bmx7

    while json_get_type Type "$idx" && [ "$Type" == object ]; do
        json_select "$idx"
        json_get_var shortId shortId
        json_get_var name name
        json_get_var primaryIp primaryIp
        printf "$primaryIp $name\n$primaryIp $shortId\n" >> /tmp/hosts/bmx7
        json_select ..
        $((idx++)) 2> /dev/null
    done

    # reload dnsmasq to apply changes
    logger -t bmx7-dnsupdate "dnsmasq updated due to new hosts"
    killall -s HUP dnsmasq

    # block until originators changes
    inotifywait -e create -e delete -q /var/run/bmx7/json/originators/ || sleep 10
done
