#!/bin/sh
#note  实现卡下系统安装脚本
#warn  该脚本仅在系统安装使用进行使用

#验证rpm安装是否正常，若是失败，退出
function check_return(){
	if [ $? -ne 0 ]; then
		exit 1;
	fi
}

function dirCheck(){
	driverDir=$1
	imageDir=$2
	imageExtDir=$3

	while ((1))
	do
		isImageDir="null"
		sleep 1
		if [ -d ${imageDir} ];then
			sleep 10;
			if [ -d ${imageDir} ];then
				isImageDir=`ls -dn $imageDir | grep "drw" | awk '{print $1}'`
				check_return
				mkdir -p ${imageExtDir}
				check_return
			fi
		fi
		if [ ${isImageDir} != "null" ]&&[ ! -f ${imageExtDir}/ps3stor.ko ];then
			echo "The image dir has been built!"
			cp ${driverDir}/ps3stor.ko ${imageExtDir}/
			check_return
			echo "mv ps3stor.ko finisded"
		fi
	done
}

#step1 基础变量赋值
echo "The rpm script is running!"
kernel=`uname -r`
driverSourDir=`pwd`
driverDesDir="/usr/lib/modules/${kernel}/kernel/drivers/scsi"

#只有suse 15.2系统较特殊
if [ ${kernel} == "5.3.18-22-default" ] || [ ${kernel} == "5.14.21-150400.22-default" ]; then
	imageDir="/mnt/lib/modules/${kernel}/kernel/drivers/scsi"
	imageExtDir="/mnt/lib/modules/${kernel}/extra/linkdata/ps3stor"
else
	imageDir="/mnt/sysimage/usr/lib/modules/${kernel}/kernel/drivers/scsi"
	imageExtDir="/mnt/sysimage/usr/lib/modules/${kernel}/extra/linkdata/ps3stor"
fi

#step2 安装基本驱动程序
if [ ! -e ${driverSourDir}/ps3stor.ko ]; then
	echo "The ps3stor.ko needs to be in the current dirctory!"
	exit 1;
fi

isload=`lsmod | grep -wm1 ps3stor | cut -d " " -f 1`
if [ ! ${isload} ]; then
	modprobe scsi_transport_sas
	check_return
	echo "Finish scsi_transport_sas.ko install!"
	insmod ${driverSourDir}/ps3stor.ko
	check_return
	echo "Finsih ps3stor.ko install!"
else
	if [ ${kernel} == "4.19.90-2305.1.0.0199.56.uel20.x86_64" ]; then
		imageDir="/mnt/sysimage/usr/lib/modules/5.10.0-46.uel20.x86_64/kernel/drivers/scsi"
		imageExtDir="/mnt/sysimage/usr/lib/modules/5.10.0-46.uel20.x86_64/extra/linkdata/ps3stor"
	fi
	if [ ${kernel} == "4.19.90-2403.3.0.0270.84.uel20.x86_64" ]; then
		imageDir="/mnt/sysimage/usr/lib/modules/5.10.0-74.uel20.x86_64/kernel/drivers/scsi"
		imageExtDir="/mnt/sysimage/usr/lib/modules/5.10.0-74.uel20.x86_64/extra/linkdata/ps3stor"
	fi
	if [ ${kernel} == "5.10.134-16.2.an8.x86_64" ]; then
		imageDir="/mnt/sysimage/usr/lib/modules/4.19.91-27.8.an8.x86_64/kernel/drivers/scsi"
		imageExtDir="/mnt/sysimage/usr/lib/modules/4.19.91-27.8.an8.x86_64/extra/linkdata/ps3stor"
	fi
	if [ ${kernel} == "6.6.34-9.oc9.x86_64" ]; then
		imageDir="/mnt/sysimage/usr/lib/modules/6.6.47-12.oc9.x86_64/kernel/drivers/scsi"
		imageExtDir="/mnt/sysimage/usr/lib/modules/6.6.47-12.oc9.x86_64/extra/linkdata/ps3stor"
	fi
	echo "No need to insmod ps3stor.ko"
fi

#step3 判断安装目录是否存在，存在的话进行文件拷贝
dirCheck ${driverSourDir} ${imageDir} ${imageExtDir} &
