#!/bin/sh

PATH=/sbin:$PATH
export PATH

IMAGE=boot2.img
FINALIMAGE=../../../images/boot.img
DIR=boot2
SIZE=2000

MNTPOINT=/tmp/mkimage.mnt-$$

if [ "$1" != "-f" ]; then
    if [ -f $IMAGE ]; then
	echo "$IMAGE already exists." >&2
	exit 1
    fi
    if [ -f $FINALIMAGE ]; then
	echo "$FINALIMAGE already exists." >&2
	exit 1
    fi
fi

dd if=/dev/zero of=$IMAGE bs=1k count=$SIZE 2> /dev/null

for devnum in 0 1 2 3 4 5 6 7 8; do
    if losetup /dev/loop$devnum $IMAGE 2>/dev/null ; then break; fi
done

if [ "$devnum" = "8" ]; then
    rm -rf $MNTPOINT $IMAGE
    echo "All of your loopback devices are in use!" >&2
    exit 1
fi

LODEV=/dev/loop$devnum

mke2fs $LODEV $SIZE >/dev/null 2>/dev/null

mkdir $MNTPOINT
mount -t ext2 $LODEV $MNTPOINT

(cd $DIR; find . | cpio -pv $MNTPOINT)

umount $MNTPOINT
losetup -d $LODEV
echo -n "gzipping image..."
mv $IMAGE $IMAGE.nogz
gzip -9 < $IMAGE.nogz > $IMAGE
echo " done."

rm -rf $MNTPOINT 

size=`cat boot1.img boot2.img | wc -c`
filler=`expr 1474560 - $size`

cat boot1.img boot2.img > $FINALIMAGE
dd if=/dev/zero bs=$filler count=1 >> $FINALIMAGE

cp $IMAGE /mnt/intel/dosutils/autoboot/initrd.img
