#! /bin/sh -

#
#	$Id: stage3,v 1.4.2.3 1999/05/07 10:02:31 abial Exp $
#
set -e

. ../Version

if [ ! -f kernel.gz ]; then
	echo "-> ERROR: you must build kernel.gz first"
	exit 1
fi

echo "-> Preparing 1.44 floppy filesystem..."
umount /dev/vn0 2> /dev/null || true
umount /mnt 2> /dev/null || true
vnconfig -u /dev/rvn0 2> /dev/null || true

dd of=picobsd.bin if=/dev/zero count=1440 bs=1k 2> /dev/null

awk 'BEGIN {printf "%c%c", 85, 170}' | \
                dd of=picobsd.bin obs=1 seek=510 conv=notrunc  2> /dev/null

#vnconfig -s labels -c /dev/rvn0 picobsd.bin 2>/dev/null
vnconfig -c /dev/rvn0 picobsd.bin 2>/dev/null
if [ "X$?" != "X0" ]
then
	echo "-> ERROR while doing vnconfig of picobsd.bin on /dev/rvn0..."
	echo "-> Aborting $0"
	exit 10
fi

dd if=/boot/boot1 of=picobsd.bin conv=notrunc 2> /dev/null

disklabel -Brw -b /boot/boot1 -s /boot/boot2 /dev/rvn0 fd1440 2>&1 >/dev/null
if [ "X$?" != "X0" ]
then
	echo "-> ERROR while labeling picobsd.bin on /dev/rvn0..."
	echo "-> Aborting $0"
	exit 10
fi

newfs -i 32768 -m 0 -p 0 -o space /dev/rvn0c 2>&1 >/dev/null

mount /dev/vn0c /mnt

pwd=`pwd`

cd ../${TYPE}/floppy.tree
echo "-> Copying language dependent files..."
for i in hosts motd rc resolv.conf
do
	cat ../lang/${i}.${LANGUAGE} | \
		sed -e "s/@VER@/${VER}/g" > \
		etc/${i}
done
if [ "${TYPE}" != "router" ]
then
	cat ../lang/rc.conf.${LANGUAGE} | \
		sed -e "s/@VER@/${VER}/g" > \
		etc/rc.conf
	cat ../lang/rc.network.${LANGUAGE}| \
		sed -e "s/@VER@/${VER}/g" > \
		etc/rc.network
fi

echo "-> Populating floppy filesystem..."
cp -pr . /mnt
rm -rf /mnt/CVS /mnt/etc/CVS /mnt/etc/ppp/CVS
if [ "${TYPE}" = "dial" ]
then
	pwd_mkdb -d etc/ etc/master.passwd
	mv etc/spwd.db /mnt/etc/
	rm etc/pwd.db
fi

if [ "X$?" != "X0" ]
then
	echo "-> ERROR while transferring ../${TYPE}/floppy.tree to /mnt..."
	echo "-> Aborting $0"
	exit 10
fi

cd ${pwd}
cp kernel.gz /mnt/kernel.gz
if [ "X$?" != "X0" ]
then
	echo "-> ERROR while transferring kernel.gz to /mnt..."
	echo "-> Aborting $0"
	exit 10
fi
mkdir /mnt/boot
mkdir /mnt/boot/defaults
cp /boot/loader .
# Make sure we have the a.out stubs we need...
if [ ! -f /usr/lib/aout/kzhead.o ]
then
	(cd ${SRC}/sys/i386/boot/kzipboot && make all install clean)
fi
kzip -v loader
mv loader.kz /mnt/boot/loader
rm -f loader loader.o
#echo "/boot/loader" >/mnt/boot.config
cp ${SRC}/sys/boot/forth/loader.4th /mnt/boot/
cp ${SRC}/sys/boot/forth/support.4th /mnt/boot/
cp ${SRC}/sys/boot/forth/loader.conf /mnt/boot/defaults
echo "userconfig_script_load=\"YES\"">/mnt/boot/loader.conf
for i in frames screen
do
	cp ${SRC}/share/examples/bootforth/${i}.4th /mnt/boot/
done
cp ../forth/loader.rc /mnt/boot/loader.rc
cp ../forth/menu.4th /mnt/boot/menu.4th
(echo "-> Fixing permissions"; cd /mnt; chown -R root *)
rm kernel.gz

df -ik /mnt

umount /mnt
vnconfig -u /dev/rvn0
