#!/bin/sh

source /etc/tos/scripts/scripts

#mount -o remount rw /
local BASEMNT=$TOS_RAID_CORE_PATH
local BASEBLK=$TOS_RAID_CORE

#parameters:
#1 scan /dev/sd[a-z]2

local RAIDHDD=""
script_get_lock
for blk in /dev/sd[a-z]2
do
	mdadm -E $blk | grep TOS > /dev/null
	if [ $? -eq 0 ]; then
		echo "found RAID core disk:" $blk
		RAIDHDD=$RAIDHDD" "$blk
	fi
done

echo "start RAID core with disk:" $RAIDHDD
local NOTINRAID=""
for sdk in $RAIDHDD; do
	if [ ! -b $BASEBLK ]; then
		mdadm -A $BASEBLK $sdk --force
		sleep 1
		[ ! -b $BASEBLK ] && NOTINRAID=$NOTINRAID"$sd "
	else
		mdadm -a $BASEBLK $sdk
	fi
done

if [ ! -b $BASEBLK ]; then
	echo "start RAID core failed"
	script_put_lock
	exit 1
else
	if [ "X${NOTINRAID}" != "X" ]; then
		for element in ${NOTINRAID}; do
			[ "X${element}" != "X" ] && mdadm -a ${BASEBLK} ${element}
		done
	fi
	mkdir -p $BASEMNT
	if [ $? -ne 0 ]; then
		echo "mkdir" $BASEMNT "failed"
		script_put_lock
		exit 1
	fi
	# repair the ext2/ext3/ext4 filesystem error...
	e2fsck -p $BASEBLK
	mount $BASEBLK $BASEMNT
	if [ $? -ne 0 ]; then
		echo "mount" $BASEBLK "to" $BASEMNT "failed"
		script_put_lock
		exit 1
	fi
fi

echo "start RAID core DOOOOOONE!!!!!"

script_put_lock
exit 0
