#!/bin/bash

CWD=`pwd`
PATCH_DIR=/usr/SunTrafficManager/patch
OS_VER=`uname -r`
NUM_SUPPORTED_OS=3
SUPPORTED_OS_VER=( 2.4.9-e.3 2.4.9-e.12 2.4.21-4.EL )
JAVA_VER=j2sdk-1.4.2_02-fcs
IS_SUP=0
PREV_SSTM_PKG=`rpm -qa | grep SunTrafficManager- | head -1`
PREV_VERSION=`rpm -q --queryformat '%{VERSION}\n' $PREV_SSTM_PKG`

# returns OK if $1 contains $2
strstr() {
  [ "$1" = "$2" ] && return 0
  slice=${1#*$2*}
  [ "$slice" = "$1" ] && return 1
  return 0
}

#installs RPMs and applies the kernel patches
sstm_install() {
echo "Installing SSTM......"
#install j2re if not present
JAVA_SDK=`rpm -qa | grep j2sdk-1.4.2_02-fcs | head -1`
if [ "$JAVA_SDK" = "$JAVA_VER" ]; then
    echo "    jre $JAVA_VER already installed"
else
    echo "    Installing JRE 1.4.2_02......"
    rpm -i j2sdk-1_4_2_02-linux-i586.rpm
fi
#remove previously installed kernel patch if it exists
cd /usr/src/linux-$MY_OS
PREV_PATCHES=`ls $PATCH_DIR/SunTrafficManager*.patch 2> /dev/null | head -1`
if [ -n "$PREV_PATCHES" ]; then
    echo "    Removing previous SSTM kernel patches......"
    patch -NR -p0 < $PATCH_DIR/SunTrafficManager.$PREV_VERSION*linux_$MY_OS.patch
    patch -NR -p2 < $PATCH_DIR/SunTrafficManager.$PREV_VERSION.patch
fi
#remove old SSTM
if [ -n "$PREV_SSTM_PKG" ]; then 
    echo "    Removing previous SSTM package......"
    rpm -e $PREV_SSTM_PKG 
fi
rm -rf /usr/src/redhat/SOURCES/jafo_linux
rm -rf /usr/src/redhat/SOURCES/sstm_utils.*
rm -f /usr/src/linux-2.4/include/linux/modules/jafo_syms.*
#apply new kernel patches
echo "    Applying latest SSTM kernel patches......"
patch -N -p0 < $CWD/SunTrafficManager.4.4_linux_$MY_OS.patch 
patch -N -p2 < $CWD/SunTrafficManager.4.4.patch
#install SunTrafficManager binaries and src
echo "    Installing SSTM package......"
rpm -i $CWD/SunTrafficManager-4.4*.i386.rpm
rpm -i $CWD/SunTrafficManager-4.4*.src.rpm

}


for(( i = 0 ; i < $NUM_SUPPORTED_OS ; i++ ))
    do
	if strstr "$OS_VER" "${SUPPORTED_OS_VER[$i]}" ; then
	    IS_SUP=1
	    MY_OS=${SUPPORTED_OS_VER[$i]}
	    sstm_install
	    echo " "
	    echo "Installation done."
	    echo " "
	    echo "Please follow the steps in README on how to build"
	    echo "the linux kernel for Sun StorEdge Traffic Manager."
	    break
	fi
    done
    if [ $IS_SUP = 0 ]; then 
	echo "version $OS_VER: not supported"
    fi
	
