EDITZONE
#!/bin/sh

if [ -z $1 ] ; then
        echo "Usage : $0 <zone>"
        echo "Edits <zone>"
        echo "Example: $0 danskkabeltv.dk"
        exit 1
fi

ZONE=$1
NAMEDHOME="/var/chroot/named/etc"
NAMEDBDIR="${NAMEDHOME}/namedb"
MASTERDIR="${NAMEDHOME}/namedb/master"
ZONEFILE="${MASTERDIR}/db.${ZONE}"
GIT=/usr/pkg/bin/git

OLDPWD=${PWD}
cd ${NAMEDBDIR}
if [ ! -f ${ZONEFILE} ]; then
        echo "Zone ${ZONEFILE} does not exist."
        echo "If you need to create a new zone, use createZone instead."
        exit 1
fi


DNSNOERR=1

while [ ${DNSNOERR} -gt 0 ] ; do
        ${EDITOR} ${ZONEFILE}
        /usr/sbin/named-checkzone -q ${ZONE} ${ZONEFILE}
        DNSNOERR=$?
        if [ $DNSNOERR -gt "0" ] ; then
                echo "Zonefile errors follow"
                /usr/sbin/named-checkzone ${ZONE} ${ZONEFILE}
                "Press space to enter editor and fix errors"
                read -p "Press [space] to Edit file"
        fi
done

echo "Reloading ${ZONE} - remembered to increase the serial?"
rndc reload ${ZONE}

echo "Comitting ${ZONE} to git repository"
${GIT} add ${ZONEFILE}
${GIT} commit -m "${USER} changed ${ZONE}"
${GIT} push -u origin master
cd ${OLDPWD}
CreateZone
#!/bin/sh

if [ -z $1 ] ; then
        echo "Usage : $0 <zone>"
        echo "creates <zone>"
        echo "Example: $0 test.info"
        exit 1
fi

ZONE=$1
NAMEDHOME="/var/chroot/named/etc"
NAMEDBDIR="${NAMEDHOME}/namedb"
MASTERDIR="${NAMEDBDIR}/master"
NAMEDSKEL="${NAMEDBDIR}/skel"
ZONEFILE="${MASTERDIR}/db.${ZONE}"
GIT=/usr/pkg/bin/git
RNDC=/usr/sbin/rndc

OLDPWD=${PWD}
cd ${NAMEDBDIR}
if [ -f ${ZONEFILE} ]; then
        echo "Zone ${ZONEFILE} exists."
        echo "If you need to edit an existing zone, use editZone instead."
        exit 1
fi


DNSNOERR=1

## Copy Skeleton to dbfile
cp ${NAMEDSKEL}/db.skeleton ${ZONEFILE}

## Change #VARIABLES#
SERIAL=`/bin/date +%Y%m%d00`
DATE=`/bin/date +%Y%m%d`
USER=`/usr/bin/whoami`

sed -e "s/#DOMAIN#/${ZONE}/" ${ZONEFILE} > ${ZONEFILE}.tmp && mv ${ZONEFILE}.tmp ${ZONEFILE}
sed -e "s/#SERIAL#/${SERIAL}/" ${ZONEFILE} > ${ZONEFILE}.tmp && mv ${ZONEFILE}.tmp ${ZONEFILE}
sed -e "s/#CREATEDBY#/${USER}/" ${ZONEFILE} > ${ZONEFILE}.tmp && mv ${ZONEFILE}.tmp ${ZONEFILE}
sed -e "s/#CREATEDATE#/${DATE}/" ${ZONEFILE} > ${ZONEFILE}.tmp && mv ${ZONEFILE}.tmp ${ZONEFILE}

## Add Zonefile to master
echo "zone \"${ZONE}\" { type master; file \"master/db.${ZONE}\"; };" >> zones.master


${RNDC} reconfig ${ZONE}
${RNDC} reload ${ZONE}

echo "Comitting ${ZONE} to git repository"
${GIT} add ${ZONEFILE} zones.master
${GIT} commit -m "${USER} added ${ZONE}"
${GIT} push -u origin master
cd ${OLDPWD}