#!/sbin/sh
#
# MLAIS M52 repartition /data script

OUTFD=$2

ui_print() {
  echo -n -e "ui_print $1\n" > /proc/self/fd/$OUTFD
  echo -n -e "ui_print\n" > /proc/self/fd/$OUTFD
}

get_num() {
  echo "$BUFFER" | grep $1 | awk '{print $1}'
}

get_start() {
  echo "$BUFFER" | grep $1 | awk '{print $2}'
}

ui_print "**************************************"
ui_print "* MLAIS M52 repartition /data script *"
ui_print "* 4 GB /data version                 *"
ui_print "*                        for 4pda.ru *"
ui_print "**************************************"
ui_print ""

dd if=/dev/zero of=/proc/driver/mtd_writeable bs=3 count=1

PARTSIZE="4436"
BUFFER=$(parted -s /dev/block/mmcblk0 print)
CACHE_NUM=$(get_num "cache")
USERDATA_NUM=$(get_num "userdata")
USERDATA_START=$(get_start "userdata")
USERDATA_END=${USERDATA_START/MB/""}
USERDATA_END="$((USERDATA_END + $PARTSIZE))MB"
INTSD_NUM=$(($(get_num "userdata")+1))
INTSD_END=$(get_start "flashinfo")

ui_print "- Unmounting /system and /data"
umount -l /system
umount -l /data

ui_print "- Removing /data and /intsd"
parted -s /dev/block/mmcblk0 rm ${USERDATA_NUM} > /dev/null
sleep 2
umount -l /storage/sdcard0
umount -l /storage/sdcard0
parted -s /dev/block/mmcblk0 rm ${INTSD_NUM} > /dev/null

ui_print "- Creating /data and /intsd"
parted -s /dev/block/mmcblk0 mkpart primary ${USERDATA_START} ${USERDATA_END} > /dev/null
parted -s /dev/block/mmcblk0 mkpart primary ${USERDATA_END} ${INTSD_END} > /dev/null
parted -s /dev/block/mmcblk0 name ${USERDATA_NUM} userdata > /dev/null
parted -s /dev/block/mmcblk0 name ${INTSD_NUM} intsd > /dev/null

sleep 2
ui_print "- Formatting /data, /intsd and /cache"
make_ext4fs /dev/block/mmcblk0p${USERDATA_NUM} > /dev/null
mkfs.exfat /dev/block/mmcblk0p${INTSD_NUM} > /dev/null
umount -l /cache
make_ext4fs /dev/block/mmcblk0p${CACHE_NUM} > /dev/null

ui_print "- Done! Rebooting!"
sync
sleep 2
sync
reboot
