#!/bin/sh
#
#	$OpenBSD: bind9-enable,v 1.8 2001/10/08 23:01:51 jakob Exp $
#
#	this script replaces OpenBSD named files with the corresponding
#	files from BIND v9.

PREFIX=y0y0y0
BINDIR=/usr/sbin
CHROOT=/var/named
config=${CHROOT}/etc/named.conf

if [ `id -u` -ne 0 ]; then
    echo "You must be root to run this script."
    exit
fi

echo "This script will replace OpenBSD BIND v4 with BIND v9"
echo ""
echo -n "Are you sure you want to to this (y/[n])? "

read answer
echo ""

if [ X$answer != Xy ]; then
    echo "exit"
    exit
fi

######################################################################
if [ -e /usr/sbin/named.dist ]; then
    echo "BIND v4 already preserved, not saving old files."
    echo ""
elif [ ! -e /var/named/named-xfer ]; then
    echo "Couldn't find BIND v4 files, not saving old files."
    echo ""
else 
    echo "Trying to save BIND v4 files:"

    for file in \
	/usr/sbin/addr \
	/usr/sbin/dig \
	/usr/sbin/dnsquery \
	/usr/sbin/host \
	/usr/sbin/named \
	/usr/sbin/named.reload \
	/usr/sbin/named.restart \
	/usr/sbin/ndc \
	/usr/sbin/nslookup \
	/usr/share/man/cat1/dig.0 \
	/usr/share/man/cat1/dnsquery.0 \
	/usr/share/man/cat1/host.0 \
	/usr/share/man/cat8/named-xfer.0 \
	/usr/share/man/cat8/named.0 \
	/usr/share/man/cat8/named.reload.0 \
	/usr/share/man/cat8/named.restart.0 \
	/usr/share/man/cat8/ndc.0 \
	/usr/share/man/cat8/nslookup.0 \
	/usr/share/misc/nslookup.help \
	/var/named/named-xfer
    do
	if [ -f $file ]; then
	    echo " $file"
	    mv -f $file $file.dist
	fi
    done

    echo ""
fi

######################################################################
echo "Creating soft links for binaries:"

for file in \
    dig host nslookup nsupdate
do
    echo " $BINDIR/$file -> $PREFIX/bin/$file"
    rm -f $BINDIR/$file
    ln -s $PREFIX/bin/$file $BINDIR/$file
done

for file in \
    named rndc lwresd \
    dnssec-keygen dnssec-makekeyset dnssec-signkey dnssec-signzone \
    named-checkconf named-checkzone
do
    echo " $BINDIR/$file -> $PREFIX/sbin/$file"
    rm -f $BINDIR/$file
    ln -s $PREFIX/sbin/$file $BINDIR/$file
done

echo ""

######################################################################
echo "Setup directory structure:"

if [ ! -d ${CHROOT} ]; then
    echo " ${CHROOT}"
    install -d -o root -g wheel -m 755 ${CHROOT}/var
fi

echo " ${CHROOT}/dev"
if [ ! -d ${CHROOT}/dev ]; then
    install -d -o root -g wheel -m 755 ${CHROOT}/dev
fi
pax -r -w -pe \
    /dev/null \
    /dev/random \
    /dev/srandom \
    /dev/urandom \
    /dev/prandom \
    /dev/arandom \
    ${CHROOT}

if [ ! -d ${CHROOT}/var ]; then
    echo " ${CHROOT}/var"
    install -d -o root -g wheel -m 755 ${CHROOT}/var
fi

if [ ! -d ${CHROOT}/var/run ]; then
    echo " ${CHROOT}/var/run"
    install -d -o named -g wheel -m 755 ${CHROOT}/var/run
fi

if [ ! -d ${CHROOT}/var/tmp ]; then
    echo " ${CHROOT}/var/tmp"
    install -d -o named -g wheel -m 755 ${CHROOT}/var/tmp
fi

echo ""

######################################################################
echo "Symlink $config:"

if [ ! -L $config -a ! -e $config ]; then
    echo " $config->../named.conf"
    ln -s ../named.conf $config
else
    echo " not needed"
fi

echo ""
