#!/bin/bash
#Update script for ".o" on BIND9/Ubuntu 18.04

#Variables
CHECKCONF=/usr/sbin/named-checkconf
TMP_DEST='/tmp/db.o'
WORK_DIR='/opt/tld/o/'
FILE_NAME='db.o'
OUTPUT_DIR='/etc/bind/zone/master/o/'
FILES=${WORK_DIR}zone/*

cd $WORK_DIR
git fetch origin master > /dev/null
git reset --hard origin/master > /dev/null

for f in $FILES
do
  cp $WORK_DIR$FILE_NAME $TMP_DEST
  cat $f >> $TMP_DEST

  TEST=$($CHECKCONF "$TMP_DEST")
  if [ "$TEST" ]; then
    echo "Failed to add ${f}.o to the main zone!"
  else
    echo "Processed ${f}.o Successfully"
    echo ";`git log --oneline -- $f | tail -n 1`" >> $FILE_NAME
    cat $f >> $FILE_NAME
  fi

  VERIFY=$($CHECKCONF "$WORK_DIR$FILE_NAME")
  if [ "$VERIFY" ]; then
    echo "Some unknown error occured: $WORK_DIR$FILE_NAME"
    exit 1
  fi
done

rm ${OUTPUT_DIR}db*
cp $WORK_DIR$FILE_NAME /etc/bind/zone/master/o/

systemctl reload bind9