#!/bin/sh

#set -x

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin

read_timeout () {
        sh -c '( sleep "'$1'" && kill $$ ) >/dev/null & read i; kill $!; echo "$i"' 2>/dev/null
}

echo
echo "*** Pocket Workstation boot loader ***"
echo
echo -n "Boot (d)ebian, (s)hell or (q)topia environment? [d] "
r=`read_timeout 10`

if [ ."$r" = ."q" ]; then
	# run qtopia via native init
	exec /sbin/init
fi
if [ ."$r" = ."s" ]; then
	# run a shell only
	exec /bin/bash
	exec /bin/sh
fi

# ok, let's continue with the Debian system

panic () {
	echo "*** Oops, something went wrong! Launching a shell." >&2
	echo "*** Run "exec /sbin/init" to launch the Qtopia environment." >&2
	exec /bin/bash
	exec /bin/sh
	exit 1
}

insmod /lib/modules.rom/`uname -r`/kernel/drivers/block/sharp_mmcsd_m.o || panic

# update /proc/deviceinfo/* information
mount /proc /proc -t proc
/sbin/writerominfo

[ ! -e /dev/mmcda ] && mknod /dev/mmcda b 60 0
[ ! -e /dev/mmcda1 ] && mknod /dev/mmcda1 b 60 1
[ ! -e /dev/mmcda2 ] && mknod /dev/mmcda2 b 60 2

e2fsck -y /dev/mmcda1
mount /dev/mmcda1 /usr/mnt.rom/card -t ext2 -o ro || panic

MNTP=/usr/mnt.rom/card

PATH=$PATH:/sbin:$MNTP/bin:$MNTP/usr/bin:$MNTP/sbin:$MNTP/usr/sbin

cd $MNTP || panic
[ ! -d mnt/rom ] && {
	mount /dev/mmcda1 $MNTP -n -o rw,remount
	mkdir mnt/rom
	mount /dev/mmcda1 $MNTP -n -o ro,remount
}
pivot_root . mnt/rom || panic

#exec chroot . sbin/init "$@" <dev/tty >dev/tty 2>&1
exec chroot . sbin/init "$@" || panic

