#!/bin/sh
. /var/etc/autostart/start-config

if [ ! "$debug" == 'off' ]; then
	echo "[CMD] start /sbin/cmd"
fi
if [ "$debug" = 'full' ]; then
	set -x
fi

stfbcontrol a 0

INPUT=$1
CMD=$*
CHKRET="0"

killall -9 rcS
killall -9 enigma2
/sbin/fuser -k /dev/dvb/adapter0/frontend0
killall -9 `grep emu= /var/etc/autostart/start-config | cut -d \" -f2 | cut -d " " -f0`
killall -9 showiframe

ART=`echo $INPUT | tr "/" "\n" | tail -n1 | cut -d "." -f1`
TYPE=`echo $INPUT | tr "/" "\n" | tail -n1 | cut -d "." -f2`
DEV=`echo $CMD | tr " " "\n" | tail -n1`

umount -fl $DEV

#check ob fsck parameter mit filesystem uebereinstimmt
if [ "$ART" == "fsck" ]; then
 	CHKTYPE=`blkid -w /dev/null -c /dev/null -s TYPE | grep -m1 "$DEV" | sed 's/^.*TYPE="//;s/".*$//'`
 	if [ "$CHKTYPE" == "fat" ] || [ "$CHKTYPE" == "vfat" ] || [ "$CHKTYPE" == "msdos" ]; then
 		if [ "$TYPE" != "fat" ] && [ "$TYPE" != "vfat" ] && [ "$TYPE" != "msdos" ]; then
 			echo "[CMD] fsck filesystem mismatch parameter:$TYPE blkid:$CHKTYPE"
 			TYPE=$CHKTYPE
			stfbcontrol a 255
 			infobox 100 "saver" "Filesystem Check ($TYPE) on $DEV" &
 			echo "FSCK: start" > /dev/vfd
			CMD="/sbin/fsck.$TYPE -y $DEV"
			CHKRET="1"
		fi
	fi
	if [ "$CHKTYPE" == "ext2" ] || [ "$CHKTYPE" == "ext3" ]; then
		if [ "$TYPE" != "ext2" ] && [ "$TYPE" != "ext3" ]; then
			echo "[CMD] fsck filesystem mismatch parameter:$TYPE blkid:$CHKTYPE"
 			TYPE=$CHKTYPE
			CMD="/sbin/fsck.$TYPE -f -p $DEV"
		fi
	fi
fi

echo INPUT: $INPUT > /var/cmd.log
echo ART: $ART >> /var/cmd.log
echo TYPE: $TYPE >> /var/cmd.log
echo DEV: $DEV >> /var/cmd.log
echo CMD: $CMD >> /var/cmd.log
echo >> /var/cmd.log
$CMD >> /var/cmd.log 2>&1
RET=$?

if [ "$CHKRET" == "1" ]; then
	if [ $RET -ne 0 ]; then
		killall infobox
		stfbcontrol a 255
		infobox 9999 "FEHLER" "Es ist ein Fehler aufgetreten." " " "Die Fehlermeldung befindet sich in /var/cmd.log" &
		echo "CMD: Fehler" > /dev/vfd
	else
		killall infobox
		stfbcontrol a 255
		infobox 9999 "ERFOLGREICH" "Der Befehl wurde erfolgreich ausgefuehrt." &
		echo "CMD: OK" > /dev/vfd
	fi
fi

sleep 5 
killall infobox

if [ "$ART" == "mkfs" ] && [ $RET -eq 0 ]; then
	stfbcontrol a 255
	echo "[CMD] mount -t $TYPE $DEV /media/hdd"
	mount -t $TYPE $DEV /media/hdd
	infobox 3 MKFS-RECORD "Mount -t $TYPE $DEV to /media/hdd" 
 	echo "Mount: $DEV" > /dev/vfd
	sleep 3
	echo "[CMD] mkdir /media/hdd/movie"
	mkdir /media/hdd/movie
	infobox 5 MKFS-RECORD "Create /media/hdd/movie"
 	echo "Create: movie" > /dev/vfd
	sleep 5
	echo "[CMD] umount $DEV"
	umount -fl $DEV
	infobox 5 MKFS-RECORD "Umount $DEV from /media/hdd" 
 	echo "Umount: $DEV" > /dev/vfd
	sleep 5
fi

killall -9 infobox
stfbcontrol a 0
/var/etc/autostart/start.sh reboot 2
reboot -f
