#!/bin/bash

NS="$1"
NSuser="ganymede"
NSdir="/etc/bind"
KEY="/etc/xsltzone/Knsdiff-ddns.+163+16361"

shift

echo "$0: syncing DNS data to '$NS'"
cd /var/cache/xsltzone/dns

rsync -a "named.conf.$NS" "${NSuser}@${NS}:${NSdir}/named.conf"
if [ $# -gt 0 ]; then
	{
		for i in "$@" ; do
			echo -ne "--include\0"
			echo -ne "$i\0"
		done
		echo -ne '--exclude\0'
		echo -ne '*\0'
		echo -ne '.\0'
		echo -ne "${NSuser}@${NS}:${NSdir}/zones/\0"
	} | xargs -x0 rsync -rtO --ignore-existing --delete --delete-excluded --filter 'protect *.jnl'
fi

echo "checking zone keys..."
ssh -oBatchMode=yes "${NSuser}@${NS}" ${NSdir}/activate-zones

echo -n "updating zones..."
START=$(date +%s)
{
	echo "server ${NS}"
	for i in "$@" ; do
		nsdiff -0 -S date -@ "${NS}" "$i"
	done
} | nsupdate -vk "$KEY"
echo " "$(( $(date +%s) - $START ))"s"

exit 0
