#!/bin/sh

#set -x

/bin/mount -n -t proc proc /proc
/bin/mount -n -t devpts devpts /dev/pts
export INSMOD="/sbin/insmod"
export MODDIR="/lib/modules/"$(uname -r)

/etc/init.d/init1

init=0
/bin/boot || init=1
if [ $init -eq 1 ]; then
	/bin/eraseall /dev/mtd/1
fi

/bin/mount -t ramfs none /tmp
/bin/mount -t cramfs /dev/mtdblock/0 /mnt/cfs
# Line removed by FlashWizard
/bin/mount /dev/ide/host0/bus0/target0/lun0/part1 /hdd/
sleep 2
/bin/mount /dev/scsi/host0/bus0/target0/lun0/disc /mnt/usb
/bin/mount /dev/scsi/host0/bus0/target0/lun0/part1 /mnt/usb

if [ $init -eq 1 ]; then
    /bin/rm -f /hdd/var/.init
    /bin/rm -f /mnt/usb/var/.init
    /bin/rm -f /mnt/jffs/.init
    /bin/mount -o bind /mnt/jffs /var
elif [ -e /mnt/jffs/.init ]; then
    /bin/mount -o bind /mnt/jffs /var
    /bin/rm -f /hdd/var/.init
    /bin/rm -f /mnt/usb/var/.init
elif [ -e /mnt/usb/var/.init ]; then
    /bin/mount -o bind /mnt/usb/var /var
    /bin/rm -f /hdd/var/.init
elif [ -e /hdd/var/.init ]; then
    /bin/mount -o bind /hdd/var /var
elif [ $init -eq 0 ]; then
    /bin/mount -o bind /mnt/jffs /var
    touch /var/.init
fi

init=0

# check if /var/.init exist .. then no flash erase is needed .. this is new !
if [ -e /var/.init ]; then
    echo "no flash erase needed"
else
# new /var/.init not found.. check if old /var/tmp/init exist.. 
# then not flash erase ist needed
    if [ -e /var/tmp/init ]; then
# ok old /var/tmp/init exist.. no create the new flash_erase detection file..
	touch /var/.init
# delete /var/tmp folder now.. 	
	rm -rf /var/tmp
# create link to /tmp <- this is mounted to RAM 
	ln -sf /tmp /var/tmp
    else
# flash erase is needed ...     
	init=1
    fi
fi

if [ $init -eq 1 ] ; then
	[ -f /.var.tar.gz ] && tar -zxvf /.var.tar.gz
	[ -f /.var.tar.bz2 ] && tar -jxvf /.var.tar.bz2
	touch /var/.init
	sync
fi

# enable suport emu
mkdir /dev/ost
ln -s /dev/dvb/card0/demux0 /dev/ost/demux0
ln -s /dev/ca0 /dev/dvb/card0/ca0

ln -sf sound/dsp /dev/dsp
ln -sf fb/0 /dev/fb0
ln -s /dev/input/mice /dev/psaux 
ln -s /dev/input/mice /dev/mouse  

/bin/hostname dreambox

/sbin/ifconfig lo 127.0.0.1 netmask 255.0.0.0 up
/sbin/ifconfig eth0 192.168.0.2 netmask 255.255.255.0 up
/sbin/route add default gw 192.168.0.1

/sbin/inetd &

. /proc/bus/dbox.sh

# enable corefiles (for debugging)
echo "/hdd/%N-%U.core" > /proc/sys/kernel/core_name_format
ulimit -c 0

[ -f /var/bin/hdd_setting.sh ] && /var/bin/hdd_setting.sh
[ -f /var/bin/conf_restore.sh ] && /var/bin/conf_restore.sh

[ -f /var/tuxbox/config/hdd_swap_file -a /hdd/hdd_swap_file ] && swapon /hdd/hdd_swap_file || rm -f /hdd/hdd_swap_file
[ -f /var/tuxbox/config/usb_swap_file -a /mnt/usb/usb_swap_file ] && swapon /mnt/usb/usb_swap_file || rm -f /mnt/usb/usb_swap_file

/var/bin/update_tmp.sh

export LD_LIBRARY_PATH=/tmp:/var/lib:/lib:$LD_LIBRARY_PATH
export PATH=/tmp:/var/bin:/var/sbin:/sbin:/bin:$PATH

[ -e /var/tuxbox/config/sdev ] && $INSMOD $MODDIR/misc/sdev.o
[ -f /var/etc/init ] && /var/etc/init

unset TZ

touch /tmp/.enigma
while [ -e /tmp/.enigma ]
do
    /bin/test -e /var/bin/emud && /var/bin/emud || /bin/emud
    /bin/enigma
    case "$?" in
        0)
            echo "Shutdown"
            killall emud
            sleep 5
            /var/bin/update_var.sh
            rm /tmp/.enigma
            /sbin/halt
            ;;
        2)
            echo "Restart"
            killall emud
            sleep 5
            /var/bin/update_var.sh
            ;;
        *)
            echo "Reboot"
            killall emud
            sleep 5
            /var/bin/update_var.sh
            rm /tmp/.enigma
	    /sbin/reboot
            ;;
    esac
done

exit 0
