#!/bin/sh
#
#

set_deps() {

echo
echo "Checking module dependencies..."
for MODLIST in `cat data/netmods.txt`; do
	if [ "`echo $MODLIST | cut -d "," -f 1`" = "$NETMOD1" ]; then
		MODDEP1=`echo $MODLIST | cut -d "," -f 2`
		if ! [ -z "$MODDEP1" ]; then
			echo "$NETMOD1 deps = $MODDEP1"
		else
			echo "$NETMOD1 deps = none"
		fi 
	fi			
	if [ "`echo $MODLIST | cut -d "," -f 1`" = "$NETMOD2" ]; then
		MODDEP2=`echo $MODLIST | cut -d "," -f 2`
		if ! [ -z "$MODDEP2" ]; then
			echo "$NETMOD2 deps = $MODDEP2"
		else
			echo "$NETMOD2 deps = none"
		fi 
	fi			
done
echo

}

add_module() {
	cp drivers/$1.o pkgsrc/modules/lib/modules 1>&2 > /dev/null
	if [ $? = 0 ]; then
		echo $1 >> pkgsrc/modules/etc/modules
	else
		echo "Error copying module file: $1.o"
		exit 1
	fi	
}

check_yn() {

YN=""

while [ "$YN" = "" ]; do
	echo -n "$YNMSG"
	read YN
	[ "$YN" = "y" ] && YN="Y"
	[ "$YN" = "n" ] && YN="N"
	[ "$YN" = "Y" ] || [ "$YN" = "N" ] || YN=""
done

}

buildpkg ()
{
	echo "Building package: ${PKGNAME}"
	rm -f ../packages/${PKGNAME}.tgz 2>&1 > /dev/null
	cd $PKGNAME
	tar -cf ../../packages/${PKGNAME}.tar *
	cd ../../packages
	gzip -9 ${PKGNAME}.tar
	mv ${PKGNAME}.tar.gz ${PKGNAME}.tgz
	cd ../pkgsrc
}


buildall()
{

cd pkgsrc

cat ../floppy/packages 2> /dev/null | while read PKGNAME; do

#for PKGNAME in `ls`; do 
	[ -z "$PKGNAME" ] || buildpkg
done

cat ../data/packages | while read PKGNAME; do
	[ -z "$PKGNAME" ] || buildpkg
done

if [ -n "$LANGCODE" ] ; then
  dos2unix ../language/webadmin.$LANGCODE
  cat ../language/webadmin.$LANGCODE | gzip -9 > ../floppy/config/language.gz
fi  

cd ..

# Build the standard package links
for LINKS in `cat data/packages`; do
	[ -f "packages/$LINKS.tgz" ] && ln -s ../packages/$LINKS.tgz floppy/$LINKS.tgz
done

# Build the additional package links
for LINKS in `cat floppy/packages 2> /dev/null`; do
	[ -f "packages/$LINKS.tgz" ] && ln -s ../packages/$LINKS.tgz floppy/$LINKS.tgz
done

# Build the syslinux boot loader config
cat data/syslinux.cfg | sed /"@BOOTDEV@"/s//"\/dev\/fd0u$FDCAPACITY"/ > floppy/syslinux.cfg
#cat floppy/syslinux.1 | sed /"@CONSOLEDEV@"/s//"$CONSOLEDEV"/ > floppy/syslinux.cfg
#rm floppy/syslinux.1

}

normal_format_floppy()
{
if [ "$FLOPPY" = "/dev/fd0" ] && [ "$DOFMT" = "YES" ]; then
	echo "Unable to find device entry for 1.44Mb HD floppy... the drive can not"
	echo "be automatically formatted.  If the disk in the drive is already formatted"
	echo "with a FAT file system, press enter. If you need to cancel, press CTRL-C"
	FLOPPY=/dev/fd0
	DOFMT=NO
fi

FDFMT=bin/fdformat
MKFS=bin/mkdosfs

if [ "$DOFMT" = "YES" ]; then
	$FDFMT $FLOPPY
	$MKFS -n coyote $FLOPPY
fi

}

format_floppy()
{

if [ "$DOFMT" = "YES" ]; then
	echo "Formatting $FLOPPY"
	normal_format_floppy
fi

}

write_floppy()
{

YN="Y"

while [ "$YN" = "Y" ]; do
	if [ "$DOIMG" = "NO" ]; then
	    echo
	    echo "Make sure that you have a floppy in the first floppy drive"
	    echo "in this system and press enter to continue..."
	    read JUNK

		format_floppy

		echo "Installing boot loader..."
		if [ "$FDCAPACITY" = "1440" ]; then
			bin/syslinux $FLOPPY
		else
			bin/syslinux -s $FLOPPY
		fi
 		rm -f floppy/packages 2> /dev/null
		echo "Copying files..."
		mount $FLOPPY mnt -t vfat
		cp -v floppy/* mnt/
		mkdir mnt/config 1> /dev/null 2> /dev/null
		cp -v floppy/config/* mnt/config/
		umount $FLOPPY
		echo
		YNMSG="Would you like to create another copy of this disk [y/n]? "
		check_yn
	else
		if [ -r flp.img ]; then
			echo "Adding files to floppy image..."
			mount flp.img mnt -o loop
			rm -f mnt/*.tgz
			cp -v floppy/* mnt/
			mkdir mnt/config 1> /dev/null 2> /dev/null
			cp -v floppy/config/* mnt/config/
			umount mnt
		else
			echo "Floppy image missing, can not add files"
		fi
		YN="N"
	fi
done	

}

reset_all()
{

cd floppy

for LINKS in `ls`; do
	[ -h "$LINKS" ] && rm -f $LINKS
done

cd ..

rm -f packages/* 1>&2 > /dev/null
echo > pkgsrc/modules/etc/modules
rm -f pkgsrc/modules/lib/modules/* 1>&2 > /dev/null
rm -f floppy/packages 1>&2 > /dev/null
rm -f $CONFIG_FILE 1>&2 > /dev/null
rm -f pkgsrc/ppp/etc/etc/peers/*
rm -f pkgsrc/ppp/etc/etc/*-secrets
rm -f pkgsrc/ppp/etc/etc/*.chat
rm -f pkgsrc/ppp/etc/etc/options
rm -f pkgsrc/etc/etc/ssh/ssh_host_key*
rm -f pkgsrc/language/var/http/language/*
rm -Rf drivers
rm -f floppy/linux
rm -f floppy/config/coyote.cfg
rm -f floppy/config/language.gz
cp -f data/syslinux.cfg floppy/syslinux.cfg
}
