#!/bin/sh

if [ $# = 0 ]; then
	echo Usage "upgrade.sh 0-6 [sardine | herring]"
	exit 1
fi

case $1 in
	[0-6]) ;;
	*)	echo Argument 1 value $1 is valid - 0-6;
		exit 1;;
esac

DISTRO=${2-sardine}

case $DISTRO in
	sardine) DNAME=Sardine;;
	herring) DNAME=Herring;;
	*)	 echo $DISTRO is not a recognised distribution;
		 exit 1;;
esac

if [ $1 = 0 ]; then
	echo "Reformatting Internal SD second partition for ${DNAME} using ext2fs..."
	[ "`lsmod|grep mbcache`" = "" ] && insmod /mnt/initfs/lib/modules/2.6.18-omap1/mbcache.ko
	[ "`lsmod|grep ext2`" = "" ] && insmod /mnt/initfs/lib/modules/2.6.18-omap1/ext2.ko
	mke2fs -L $DNAME /dev/mmcblk0p2
	sync
	sync
	sync
fi

if [ $1 = 1 ]; then
	echo "Installing ext2.ko module and mounting Int#p2 partition..."
	[ "`lsmod|grep mbcache`" = "" ] && insmod /mnt/initfs/lib/modules/2.6.18-omap1/mbcache.ko
	[ "`lsmod|grep ext2`" = "" ] && insmod /mnt/initfs/lib/modules/2.6.18-omap1/ext2.ko
	mount /dev/mmcblk0p2 /opt/
fi

if [ $1 = 2 ]; then
	echo "Mouting jffs2 partition on /floppy loopback"
	[ ! -d /floppy ] && mkdir /floppy
	mount -t jffs2 /dev/mtdblock4 /floppy -o rw,rpsize=1024,rpuid=0,rpuid=30000
fi

if [ $1 = 3 ]; then
	echo "Copying Flash filesystem to Int#p2"
#	rsync -avH --delete /floppy/ /opt/
	/home/user/bin/tar cf - -C /floppy . | /home/user/bin/tar xvf - -C /opt
fi

if [ $1 = 4 ]; then
	echo "Committing updates and Unmounting filesystems"
	sync
	sync
	sync
	umount /opt
	umount /floppy
fi

# Steps 5 and 6 to upgrade to required distribution

if [ $1 = 5 ]; then
	echo "Mounting Int#p2 and changing root context"
	[ "`lsmod|grep mbcache`" = "" ] && insmod /mnt/initfs/lib/modules/2.6.18-omap1/mbcache.ko
	[ "`lsmod|grep ext2`" = "" ] && insmod /mnt/initfs/lib/modules/2.6.18-omap1/ext2.ko
	mount /dev/mmcblk0p2 /opt/
	chroot /opt/
fi

if [ $1 = 6 ]; then
	echo "Upgrading Int#p2 to ${DNAME}..."
	cd /etc/apt

	mkdir /tmp/.run

	echo "#maemo:essential" >sources.list
#	echo "deb http://repository.maemo.org ${DISTRO} unstable main non-free" >>sources.list
	echo "deb http://repository.maemo.org ${DISTRO} main non-free" >>sources.list

	if [ $DISTRO = sardine ]; then
#		echo "deb http://repository.maemo.org maemo2.0 free non-free" >>sources.list
		apt-get update
		apt-get install hildon-application-framework
		apt-get -y --force-yes upgrade
	else
		apt-get update
		apt-get -y --force-yes upgrade
	fi

	sync
	sync
	sync
fi

echo Done

