#!/sbin/sh -
# Last Modified by: Jim Huang
# Last Modified on: March 25, 1999
# Log:
# 03/17/99 - Drivers for SunOS 5.5.1 was named vx(drivers).SunOS_5.5 by
#            Veritas.  During CVM patch construction process within Sun,
#            we rename these drivers from 5.5 into 5.5.1 and postpatch
#            script will install these drivers as 5.5.1.  Therefore, the
#            postbackout patch should be aware of this and restore the
#            5.5.1 drivers first.  It should restore 5.5 drivers if 5.5.1 
#            drivers do not exist, because original CVM software ship only
#            5.5 for 5.5.1 systems.

# strlen - return length of given string
strlen()
{
        echo $1 | awk '{ printf("%d",length($1)) }'
}


#
# cp the correct driver 
# 

#
# Get the OS and revision information...
#

OS_VERS=`eval uname -r`
OS_VEND=`eval uname -s` 

# if this is this Vm 2.3, there is no need to copy vxio, vxspec and
# vxconfigd over.

VM_VERS=`eval pkginfo -l SUNWvxvm | grep "VERSION:  2.3"`

TMP_OS_VERS=${OS_VERS}
case ${TMP_OS_VERS} in
	5.5.1) TMP_OS_VERS=5.5
	;;
esac

if [ "${VM_VERS}" = "" ]
	then
                VM_VERS=`eval pkginfo -l SUNWvxvm | grep VERSION`
		echo "Vxvm${VM_VERS}"

		if [ ! -s /kernel/drv/vxio ]
			then	
			echo "could not find /kernel/drv/vxio"
			return 1
		fi 
	

		if [ -s /kernel/drv/vxio.${OS_VEND}_${OS_VERS} ]
			then
			echo "copying /kernel/drv/vxio.${OS_VEND}_${OS_VERS} /kernel/drv/vxio "
			cp /kernel/drv/vxio.${OS_VEND}_${OS_VERS} /kernel/drv/vxio
			else
			if [ -s /kernel/drv/vxio.${OS_VEND}_${TMP_OS_VERS} ]
				then
				echo "copying /kernel/drv/vxio.${OS_VEND}_${TMP_OS_VERS} /kernel/drv/vxio "
				cp /kernel/drv/vxio.${OS_VEND}_${TMP_OS_VERS} /kernel/drv/vxio
				echo "        vxio.${OS_VEND}_${TMP_OS_VERS} works in ${OS_VEND}_${OS_VERS}."
				else
				echo "could not find /kernel/drv/vxio.${OS_VEND}_${TMP_OS_VERS} or"
				echo "/kernel/drv/vxio.${OS_VEND}_${OS_VERS} to restore"
				return 1
			fi 
		fi

	
		if [ -s /kernel/drv/vxspec.${OS_VEND}_${OS_VERS} ]
			then
			echo "copying /kernel/drv/vxspec.${OS_VEND}_${OS_VERS} /kernel/drv/vxspec "
			cp /kernel/drv/vxspec.${OS_VEND}_${OS_VERS} /kernel/drv/vxspec
			else
			if [ -s /kernel/drv/vxspec.${OS_VEND}_${TMP_OS_VERS} ]
				then
				echo "copying /kernel/drv/vxspec.${OS_VEND}_${TMP_OS_VERS} /kernel/drv/vxspec "
				cp /kernel/drv/vxspec.${OS_VEND}_${TMP_OS_VERS} /kernel/drv/vxspec
				echo "        vxio.${OS_VEND}_${TMP_OS_VERS} works in ${OS_VEND}_${OS_VERS}."
				else
				echo "could not find /kernel/drv/vxspec.${OS_VEND}_${TMP_OS_VERS} or"
				echo "/kernel/drv/vxspec.${OS_VEND}_${OS_VERS} to restore"
				return 1
			fi
		fi
	

		if [ -s /sbin/vxconfigd.${OS_VEND}_${OS_VERS} ]
			then 
			echo "copying /sbin/vxconfigd.${OS_VEND}_${OS_VERS} /sbin/vxconfigd "
			cp /sbin/vxconfigd.${OS_VEND}_${OS_VERS} /sbin/vxconfigd
			else
			if [ -s /sbin/vxconfigd.${OS_VEND}_${TMP_OS_VERS} ]
				then	
				echo "copying /sbin/vxconfigd.${OS_VEND}_${TMP_OS_VERS} /sbin/vxconfigd "
				cp /sbin/vxconfigd.${OS_VEND}_${TMP_OS_VERS} /sbin/vxconfigd
				echo "        vxconfigd.${OS_VEND}_${TMP_OS_VERS} works in ${OS_VEND}_${OS_VERS}."
				else
	
# this may be an old version with only 5.4 and 5.6 versions of vxconfigd...
# vxconfigd 5.4 was used for Solaris 2.4, 2.5 and 2.5.1....
	
				case ${OS_VERS} in
			        	5.5|5.5.1) TMP_OS_VERS=5.4
						echo "copying /sbin/vxconfigd.${OS_VEND}_${TMP_OS_VERS} /sbin/vxconfigd "
						cp /sbin/vxconfigd.${OS_VEND}_${TMP_OS_VERS} /sbin/vxconfigd
						echo "restored old version of vxconfigd 5.4 for ${OS_VEND}_${OS_VERS}."
			        		;;
				esac
	
			fi
		fi
	
	else
		echo "Vxvm${VM_VERS}"

fi
	
