#!/bin/sh

##################################################
### Universal RAID Utility PP install script
###
### v1.00 first cut                  (2007/08/07)
### v1.01 fix N8103-90 detection bug (2007/12/21)
### v1.40 Yamato2 support            (2008/07/16)
### v2.00 N8103-109 support          (2008/08/26)
### v2.20 N8103-130(Castor) support  (2009/07/31)
### v2.30 ST EX8760 Series support   (2009/11/13)
### v2.40 delete Check Kernel version(2010/10/28)
### v2.50 Alcor Series support       (2011/05/24)
### v3.00 N8103-(G)171(Drake) support(2013/01/18)
### v4.00 Merga Series, Fury support (2014/05/16)
###
##################################################


##############################
###  Install start
##############################

echo "uraidutl: pp_install start..."

#setup_path=`echo $0 | sed s/pp_install//g`
setup_path="/tmp/wk/lnx_vm4/"
tmp_path="/tmp/wk/"

ret=1

unzip uraidutl/EXPRESSBUILDER7_02041000_*.zip -d /tmp/wk

###############################
###  Check loaded drivers
###############################

### MegaRAID Driver ###
lsmod | grep -w megaraid_sas > /dev/null
RETVAL_MEGARAID_DRIVER=$?

### Promise Driver ###
lsmod | grep -w stex > /dev/null
RETVAL_PROMISE_DRIVER=$?

###############################
###  Check hardware
###############################

### Foxcove or N8103-116/117/118 ###
lspci -n | grep '1000:0060'  > /dev/null
RETVAL_RUCHBAH=$?

### N8103-130 ###
lspci -n | grep '1000:0079'  > /dev/null
RETVAL_CASTOR=$?

### N8103-149/150/151/160 ###
lspci -n | grep '1000:005b'  > /dev/null
RETVAL_ALCOR=$?

### N8103-(G)171(Drake) ###
lspci -n | grep '1000:0073'  > /dev/null
RETVAL_DRAKE=$?

### N8103-176/177/178/179(Merga, Seginus) ###
lspci -n | grep '1000:005d'  > /dev/null
RETVAL_MERGA=$?

### Fury ###
lspci -n | grep '1000:005f'  > /dev/null
RETVAL_FURY=$?

### N8103-206/207/208/210/211(Talladega) ###
lspci -n | grep '1000:0016'  > /dev/null
RETVAL_TALLADEGA=$?

### N8103-205(Bristol) ###
lspci -n | grep '1000:0017'  > /dev/null
RETVAL_BRISTOL=$?

### Yamato2 ###
lspci -v -n | grep '1000:0411' -A 1 | awk '(NR % 3 == 1){ prevline = $0} (NR % 3 == 2){ print prevline $0}' | grep '1033:8287' > /dev/null
RETVAL_YAMATO2=$?

### N8103-109 ###
lspci -v -n | grep '105a:8650' -A 1 | awk '(NR % 3 == 1){ prevline = $0} (NR % 3 == 2){ print prevline $0}' | grep '105a:4601' > /dev/null
RETVAL_N8103_109=$?

### STEX8760 Series ###
lspci -v -n | grep '105a:8760'  > /dev/null
RETVAL_STEX8760=$?

### N8103-90 ###
RETVAL_N8103_90=1
lspci -v -n | grep '1000:0411' -A 1 | awk '(NR % 3 == 1){ prevline = $0} (NR % 3 == 2){ print prevline $0}' | grep '1000:1002' > /dev/null
if [ $? -eq 0 ]; then
  # check on board chip's subsystemID
  while read fn
  do
    lspci -n -v | grep Subsystem | grep `echo $fn | cut -f 1 -d " "` > /dev/null
    RETVAL_N8103_90=$?
    if [ $RETVAL_N8103_90 -eq 0 ]; then
      break
    fi
  done < ${setup_path}subsys.txt
fi


#####################################################
###  Check user
###  This shell file can be used for root user only.
#####################################################

id | grep uid=0 > /dev/null
if [ $? -ne 0 ]; then
  echo "uraidutl: *** ERROR ***"
  echo "uraidutl: Please execute $0 by root user."
  echo
  exit 1
fi


#######################################
### Install Universal RAID Utility
#######################################


# check driver
if [ $RETVAL_MEGARAID_DRIVER -eq 0 ] || [ $RETVAL_PROMISE_DRIVER -eq 0 ]; then

  # check DAC board
  if [ $RETVAL_BRISTOL -eq 0 ] || [ $RETVAL_TALLADEGA -eq 0 ] || \
     [ $RETVAL_FURY -eq 0 ] || [ $RETVAL_MERGA -eq 0 ] || \
     [ $RETVAL_DRAKE -eq 0 ] || [ $RETVAL_ALCOR -eq 0 ] || \
     [ $RETVAL_CASTOR -eq 0 ] || [ $RETVAL_RUCHBAH -eq 0 ] || \
     [ $RETVAL_YAMATO2 -eq 0 ] || [ $RETVAL_N8103_90 -eq 0 ] || \
     [ $RETVAL_N8103_109 -eq 0 ] || [ $RETVAL_STEX8760 -eq 0 ]; then

    echo "uraidutl: Check OK, install Universal RAID Utility."
    sh ${setup_path}setup.sh --install
    ret=$?

    #stop WPPAgent Service
    if [ $RETVAL_N8103_109 -eq 0 ] || [ $RETVAL_STEX8760 -eq 0 ]; then
      /etc/init.d/promise-agent stop
    fi

  fi

fi

# remove temporary file
rm -rf ${tmp_path}
if [ $? -ne 0 ]; then
    echo "uraidutl: *** ERROR ***"
    echo "uraidutl: Could not remove temporary file."
    exit 1
fi


echo "uraidutl: pp_install finished."

exit ${ret}
