#!/bin/sh

PATH=/sbin:$PATH
export PATH

IMAGENM=boot.img
IMAGE=images/$IMAGENM
TMPIMAGE=/tmp/$IMAGENM
DIR=boot
SIZE=1440
SYSLINUXVER=1.40

MNTPOINT=/tmp/mkimage.mnt-$$

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

echo ./mkinitrd
./mkinitrd $1

rm -f $TMPIMAGE
dd if=/dev/zero of=$TMPIMAGE 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 $TMPIMAGE 2>/dev/null ; then break; fi
done

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

LODEV=/dev/loop$devnum

gunzip < syslinux-$SYSLINUXVER/img1440k.gz | dd of=$LODEV

# install new syslinux
syslinux-$SYSLINUXVER/syslinux $LODEV

mkdir $MNTPOINT
mount -t msdos $LODEV $MNTPOINT

(cd $DIR; find . -name CVS -prune -o -print | cpio -pv --no-preserve-owner $MNTPOINT)
cp initrd.img $MNTPOINT

ls -l $MNTPOINT
cmp $MNTPOINT/initrd.img initrd.img

df $MNTPOINT

umount $MNTPOINT
losetup -d $LODEV

cp $TMPIMAGE $IMAGE
rm -f $TMPIMAGE
rm -rf $MNTPOINT 

echo " done."
