#!/bin/sh

if [ -f /etc/init.d/include ]; then
        . /etc/init.d/include
else
	echo 'can not found include file'
	exit 1
fi

if [ -z $1 ] && [ -z $2 ]; then
	echo 'usage: mdfmt [paration type] [device]'
	exit 1
fi

debug=/tmp/`basename $2`

ter_service all stop ssh nginx

for i in /dev/loop* ;do
	if [ -b $i ]; then
		umount $i
		losetup -d $i
	fi
done

df | grep `basename $2`
if [ $? == 0 ]; then
	umount /mnt/`basename $2`
	if [ $? != 0 ]; then
		ter_service all start ssh
		echo 'fmt:null:'`basename $1`':umount failed' > $debug
		exit 1
	fi 
fi

echo 'fmt:null:'`basename $1`':format' > $debug

if [ $3 == 1 ]; then
	fmtdev=/dev/mapper/`basename $2`
else
	fmtdev=$2
fi

# create a swap area
[ -f $MOUNT_PATH/memcache ] && rm $MOUNT_PATH/memcache
dd if=/dev/zero of=$MOUNT_PATH/memcache bs=1M count=512
mkswap $MOUNT_PATH/memcache
swapon $MOUNT_PATH/memcache

# format raid ...
mke2fs -t $1 $2

mount -o defaults,user_xattr,data=ordered,acl,usrquota,grpquota $fmtdev /mnt/`basename $2`
quotacheck -cavugm

# stop and remove swap cache
if [ -f $MOUNT_PATH/memcache ]; then
	swapoff $MOUNT_PATH/memcache
	rm $MOUNT_PATH/memcache
fi
sleep 1

echo 'fmt:null:'`basename $1`':success' > $debug
rm -f $debug

ter_service all start

exit 0
