#!/bin/sh
disk=$1

if [ $# -ne 1 ]; then
	echo "Enter hard disk drive as first parameter (e.g. /dev/hda)"
        exit 1
fi

# create partitions
(echo 'o'; echo 'n'; echo 'p'; echo '1'; echo; echo '+256M'; echo 't'; echo '1'; echo '82'; \
echo 'n'; echo 'p'; echo '2'; echo; echo '+128M'; \
echo 'n'; echo 'p'; echo '3'; echo; echo; echo 'w';) | fdisk $disk
mke2fs -j $disk"2"
mke2fs -j $disk"3"
mkswap $disk"1"

# copy the files
mount $disk"3" /mnt/temp
mount --bind / /system/root
cp -a /system/root/* /mnt/temp/

# configure the boot loader
mkdir /mnt/temp/boot/grub
cp /usr/lib/grub/i386-pc/* /mnt/temp/boot/grub/
echo "timeout 5" >/mnt/temp/boot/grub/menu.lst
echo "default 0" >>/mnt/temp/boot/grub/menu.lst
echo "title Gibraltar" >>/mnt/temp/boot/grub/menu.lst
if [ "$disk" = "/dev/hda" ]; then
	echo "kernel (hd0,2)/boot/vmlinuz ramdisk_size=4608 root=/dev/ram0 init=/linuxrc rw boot="$disk"3 fastboot quiet" >>/mnt/temp/boot/grub/menu.lst
        echo "initrd (hd0,2)/boot/isolinux/initrd.bin" >>/mnt/temp/boot/grub/menu.lst
elif [ "$disk" = "/dev/hdb" ]; then
	echo "kernel (hd1,2)/boot/vmlinuz ramdisk_size=4608 root=/dev/ram0 init=/linuxrc rw boot="$disk"3 fastboot quiet" >>/mnt/temp/boot/grub/menu.lst
        echo "initrd (hd1,1)/boot/isolinux/initrd.bin" >>/mnt/temp/boot/grub/menu.lst
elif [ "$disk" = "/dev/hdc" ]; then
	echo "kernel (hd2,2)/boot/vmlinuz ramdisk_size=4608 root=/dev/ram0 init=/linuxrc rw boot="$disk"3 fastboot quiet" >>/mnt/temp/boot/grub/menu.lst
        echo "initrd (hd2,2)/boot/isolinux/initrd.bin" >>/mnt/temp/boot/grub/menu.lst
elif [ "$disk" = "/dev/hdd" ]; then
	echo "kernel (hd3,2)/boot/vmlinuz ramdisk_size=4608 root=/dev/ram0 init=/linuxrc rw boot="$disk"3 fastboot quiet" >>/mnt/temp/boot/grub/menu.lst
        echo "initrd (hd3,2)/boot/isolinux/initrd.bin" >>/mnt/temp/boot/grub/menu.lst
else
	echo "No IDE disk present"
fi

umount /mnt/temp

# copy the grub program files to /tmp
cp /sbin/grub /tmp
chpax -s /tmp/grub

# install grub
if [ "$disk" = "/dev/hda" ]; then
	echo -e "root (hd0,2)\nsetup (hd0)" | /tmp/grub --batch
elif [ "$disk" = "/dev/hdb" ]; then
	echo -e "root (hd1,2)\nsetup (hd1)" | /tmp/grub --batch
elif [ "$disk" = "/dev/hdc" ]; then
	echo -e "root (hd2,2)\nsetup (hd2)" | /tmp/grub --batch
elif [ "$disk" = "/dev/hdd" ]; then
	echo -e "root (hd3,2)\nsetup (hd3)" | /tmp/grub --batch
fi
echo "Gibraltar installed successfully!"
echo "Reboot now and adapt the BIOS!"
exit 0

