#!/bin/sh

set -e
vardir="$1"
method=$2
option=$3

cd "$vardir/methods/floppy"

mountpoint="$vardir/methods/mnt"

. ./shvar.$option

help () {
	echo '
First I need the disk(s) which contain the Packages file(s) for
the parts of the archive you wish to be able to install.  If you
want to install packages from the non-free and contrib areas of
the FTP site you need a floppy with a Packages file for each of
those, in addition to the main Packages file for the main Debian
distribution.  If you don'\''t then you just need one Packages file.'
}

help

xit=1
trap '
	if [ -n "$umount" ]
	then
		umount "$umount"
	fi
	exit $xit
' 0

tryupdate () {
	if [ $success = 1 ]; then return; fi
	if [ ! -f "$mountpoint/Packages" ]; then
		echo "$mountpoint/Packages does not exist.";
		return
	fi
	if dpkg --admindir $vardir --merge-avail "$mountpoint/Packages"
	then
		success=1
		echo '
You may incorporate another Packages file from another floppy if you wish.'
	fi
}

while [ $xit = 1 ]
do
	echo -n '
Insert a disk containing a Packages file, or type q to quit.  '
	read response
	case "$response" in
	[Qq] | [Qq][Uu][Ii][Tt] )
		xit=0
		;;
	* )
		umount="$defaultfloppy"
		if mount -rt "$defaultfstype" "$defaultfloppy" "$mountpoint"
		then
			success=0
			tryupdate Packages
			tryupdate packages
			tryupdate PACKAGES
			umount "$defaultfloppy"
		fi
		umount=""
		;;
	esac
done

echo '
OK, continuting with installation.'

xit=0
