#!/bin/bash

set -e

if !  grep -q automatic /proc/cmdline; then
        return 0
fi

if !  grep -q kylin-handle-disk /proc/cmdline; then
        return 0
fi

automatic=$(get_value automatic-installation)
if [[ "$automatic" == "0" ]]; then
  return 0
fi

data_unformat=$(get_value data-unformat)
if [[ "${data_unformat}" == "true" ]]; then
  return 0
fi

if grep 'kylin-handle-sde' /proc/cmdline; then
        return 0
fi
data_device=$(get_value data-device)
if [[ -n ${data_device} ]]; then
        return 0
fi

num=0
do_format_disk() {
	
	dev_name=$1
	num=`expr ${num} + 1`
	umount -l ${dev_name}* || true
      
        if [[ "${is_efi}" == "true" ]]; then
        	parted -s ${dev_name} mktable gpt
        	parted -s ${dev_name} mkpart "DATA${num}" ext4 1MiB 100%
	else
		parted -s "${dev_name}" mktable msdos
		parted -s "${dev_name}" mkpart primary ext4 1MiB 100%
	fi
        
	umount -l ${dev_name}* || true
	partprobe "${dev_name}"
 	sync
  	if echo "${dev_name}" | grep -q nvme; then
    		dev_name=${dev_name}p
  	fi
  	sleep 1

	mkfs.ext4 -Fq -L "DATA${num}" "${dev_name}1"

        mkdir -p /target/data1
        mount "${dev_name}1" /target/data1
        chmod -R 1777 /target/data1
        umount -l /target/data1
        rmdir /target/data1
}

disk=$(get_value devpath)

disk_dev=
disk_menu=$(lsblk -d | grep -v NAME | grep -v loop | grep -v sr | awk '{print $1}')
for i in ${disk_menu}
do
	disk_remove=$(readlink /sys/block/$i | grep usb)|| true
        if [ -n "${disk_remove}" ]; then
                echo "$i is usb disk"
        else
		disk_dev=/dev/$i
		size=0
		size=$(fdisk -s "${disk_dev}")
		size=$(( size / 1024 ))
		size=$(( size / 1024 ))
		if [[ ${size} -le 150 ]]; then
			echo "The size of ${disk_dev} is less than 150G"
		else
			if [[ "${disk_dev}" == "${disk}" ]]; then
				echo "${disk_dev} is system disk"
			else
				do_format_disk ${disk_dev}
			fi
		fi

        fi
done

