#!/bin/sh -
#
# 4.3BSD-Quasijarus release-making script.
#
# This file is freely redistributable.
#
#	@(#)get	4.28 (Berkeley) 9/7/99
#

# Shell script to build a mini-root file system in preparation for building
# a distribution tape.  The file system created here is image copied onto
# tape, then image copied onto disk as the "first" step in a cold boot of
# 4.3 systems.

if [ `pwd` = '/' ]
then
	echo You just '(almost)' destroyed the root
	exit
fi
cp /nbsd/sys/GENERIC/vmunix vmunix

# create necessary directories
DIRLIST="bin dev etc a tmp usr usr/mdec sys sys/floppy \
	sys/cassette sys/consolerl"
rm -rf $DIRLIST
mkdir $DIRLIST

ETC="disktab disklabel diskpart fsck ifconfig init mknod mount newfs restore \
	rrestore umount arff flcopy passwd group"
for i in $ETC; do
	cp /nbsd/etc/$i etc/$i
done

BIN="[ cat cp dd echo expr ls mkdir mv rcp rm sh stty sync ed awk make mt"
for i in $BIN; do
	cp /nbsd/bin/$i bin/$i
done
ln bin/stty bin/STTY

cp /nbsd/sys/floppy/[Ma-z0-9]* sys/floppy
cp /nbsd/sys/consolerl/[Ma-z0-9]* sys/consolerl
cp /nbsd/sys/cassette/[Ma-z0-9]* sys/cassette
cp /nbsd/usr/mdec/* usr/mdec
cp /nbsd/boot boot
cp /nbsd/pcs750.bin pcs750.bin
cp /nbsd/.profile .profile

cat >etc/fstab <<EOF
/dev/hp0a:/a:xx:1:1
/dev/up0a:/a:xx:1:1
/dev/hk0a:/a:xx:1:1
/dev/ra0a:/a:xx:1:1
/dev/kra0a:/a:xx:1:1
/dev/rb0a:/a:xx:1:1
EOF

cat >xtr <<'EOF'
: ${disk?'Usage: disk=xx0 tape=yy xtr'}
: ${tape?'Usage: disk=xx0 tape=yy xtr'}
echo 'Build root file system'
newfs ${disk}a
sync
echo 'Check the file system'
fsck /dev/r${disk}a
mount /dev/${disk}a /a
cd /a
echo 'Rewind tape'
mt -f /dev/${tape}0 rew
echo 'Restore the dump image of the root'
restore rsf 3 /dev/${tape}0
cd /
sync
umount /dev/${disk}a
sync
fsck /dev/r${disk}a
echo 'Root filesystem extracted'
echo
echo 'If this is an 8650 or 8600, update the console rl02'
echo 'If this is a 780 or 785, update the floppy'
echo 'If this is a 730, update the cassette'
EOF
chmod +x xtr
rm -rf dev; mkdir dev
cp /nbsd/dev/MAKEDEV dev
chmod +x dev/MAKEDEV
cp /dev/null dev/MAKEDEV.local
cd dev
./MAKEDEV std hp0 hk0 up0 ra0 kra0 rb0
./MAKEDEV ts0; mv rmt12 ts0; rm *mt*;
./MAKEDEV tm0; mv rmt12 tm0; rm *mt*;
./MAKEDEV ht0; mv rmt12 ht0; rm *mt*;
./MAKEDEV ut0; mv rmt12 ut0; rm *mt*;
./MAKEDEV tms0; mv rmt12 tms0; rm *mt*;
./MAKEDEV mt0; mv rmt12 xt0; rm *mt*; mv xt0 mt0
cd ..
sync
