#!/bin/sh
###############################################################################
# Program:
# 		MOXA Linux driver installer
#	
# History:
# 2009/09/11
#
# Author:
# Ken Huang, ken.huang@moxa.com
#
# Description:
# The script install and load the MOXA Linux driver.
#
###############################################################################

TARGET_DRIVER="mxuport mxusbserial"
REV_TARGET_DRIVER=
MXVER=`awk '{if($1=="Version" && $2=="Number:"){print $3}}' version.txt`
KVER=`uname -r`
BUILT_IN_PATH="/lib/modules/${KVER}/kernel/drivers/usb/serial/"
INPUT=$1

rhel_input () {
	if [ -f /etc/redhat-release ]; then
		TEMP=`cat /etc/redhat-release`
		case $TEMP in
			*"Red Hat"*)
				INPUT="RHEL8P1"
			;;
			*"CentOS"*)
				INPUT="RHEL8P1"
			;;
		esac
	fi
}

for DRIVER in $TARGET_DRIVER
do
	REV_TARGET_DRIVER="$i $REV_TARGET_DRIVER"
done

for DRIVER in $REV_TARGET_DRIVER
do
	if lsmod | grep -qw $DRIVER ; then
		rm -f tmp1 tmp2
		echo "Found driver in system..."
		echo "Unloading driver..."
		rmmod $DRIVER > tmp1 2>&1
		if [ -s tmp1 ]
		then
			cat tmp1
			grep "is in use" tmp1 > tmp2 2>&1
			if [ -s tmp2 ]
			then
				rm -f tmp1 tmp2
				exit 1
			fi
			rm -f tmp2
		fi
		rm -f tmp1
		echo "Unload driver successfully."
		echo ""
	fi
done

case $INPUT in
	"dkms_install")
		INPUT="dkms_install"
		if [ -f /etc/redhat-release ]; then
			TEMP=`cat /etc/redhat-release`
			case $TEMP in
				*"Red Hat"*)
					INPUT="RHEL8P1"
				;;
				*"CentOS"*)
					INPUT="RHEL8P1"
				;;
			esac
		fi
		if [ ! -f ${BUILT_IN_PATH}mxuport.ko*bak ]; then
			if [ -f ${BUILT_IN_PATH}mxuport.ko ]; then
				mv ${BUILT_IN_PATH}mxuport.ko ${BUILT_IN_PATH}mxuport.ko.bak
			fi
			if [ -f ${BUILT_IN_PATH}mxuport.ko.xz ]; then
				mv ${BUILT_IN_PATH}mxuport.ko.xz ${BUILT_IN_PATH}mxuport.ko.xz.bak
			fi
		fi
		cd driver
		INPUT="${INPUT} $2"
	;;
	"install")
		INPUT="install"
		rhel_input
	;;
	"")
		INPUT="install"
		rhel_input
	;;
esac	

if make $INPUT ; then
	echo  
	echo "Loading driver..."
	for DRIVER in $TARGET_DRIVER
	do
		modprobe $DRIVER
	done
	echo "************************************************************************"
	echo " MOXA UPort 1200/1400/1600 series driver ver $MXVER loaded successfully."
	echo "************************************************************************"
fi
