#!/bin/bash

NODE_DB_HOST="frostygmrs.com"
URI="nodes.pl"
NODE_URL="https://${NODE_DB_HOST}/${URI}"
USERAGENT="asl3-update-nodelist/1.0"

FILEPATH="/var/lib/asterisk"
NODELIST="rpt_extnodes"
EXTNODES="${FILEPATH}/${NODELIST}"
EXTNODESTMP="$(mktemp)"

cleanup() {
    rm -f "$EXTNODESTMP"
}
trap cleanup EXIT

downloadNodelist() {
    wget --user-agent="$USERAGENT" -q -O "$EXTNODESTMP" "$NODE_URL"
    if [ $? -ne 0 ]; then
        echo "failed to download from ${NODE_URL}"
        exit 1
    fi
}

writeNodelist() {
    cp "$1" "$EXTNODES"
}

LUT=$(grep -iE '^node_lookup_method' /etc/asterisk/rpt.conf | \
    perl -pe 's/^node_lookup_method\s?=\s?(\S+).*$/$1/gi' | tr '[A-Z]' '[a-z]')

if [ "x${LUT}" = "xdns" ]; then
    echo "node_lookup_method = dns; skipping"
    exit 0
fi

downloadNodelist
writeNodelist "$EXTNODESTMP"

chown asterisk:asterisk "$EXTNODES"
chmod 644 "$EXTNODES"

exit 0