#!/bin/ksh

#####################################################################################
# amqigski - Installation/removal  script for GSkit
#  Usage :   amqigski {-i | -r } 
#  This command is intended to be run from the product 
#  postinstall (-i ) and preremove (-r) scripts ( or equivalent) 
#####################################################################################
MQ_RUNSCRIPT="sh"
exitval=0
if [ `uname` = "AIX" ] ; then 
  MQ_DEFAULT_INSTALLATION_PATH=/usr/mqm
else 
  MQ_DEFAULT_INSTALLATION_PATH=/opt/mqm
fi
# 
MQ_INSTALLATION_PATH=${MQ_DEFAULT_INSTALLATION_PATH}

if [ `uname` = "Linux" ] ; then 
  TARFILE_SUFFIX="gz"
  TARFLAGS="-xzf"
else 
  TARFILE_SUFFIX="Z"
  TARFLAGS="-xf"
fi
# If we are running in 'set -x' 
OPTIONS=`echo $- | grep "x"`
if [ $? -eq 0 ] ; then
  MQ_RUNSCRIPT="sh -x"
fi
  
GSKIT_HOME=${MQ_INSTALLATION_PATH}/gskit8

case $1 in 
  -i)
#####################################################################################
# Expand the gskit tar files and set appropriate 
# ownership and permissions
# If present, run the gskit post install script
#####################################################################################
  if [ -d ${GSKIT_HOME} ] ; then 
    cd ${GSKIT_HOME}
    if [ `pwd` = ${GSKIT_HOME} ] ; then 
      for tarfile in gsk*.tar.${TARFILE_SUFFIX}
        do 
          tarfile_root=`echo $tarfile | cut -f1 -d"."`
          if [ `uname` = "Linux" ] ; then 
            /bin/tar ${TARFLAGS} ${tarfile}
          else 
            /usr/bin/zcat ${tarfile}  | /usr/bin/tar ${TARFLAGS} -
          fi
          tarrc=$?
          if [ ${tarrc} -ne 0 ] ; then
            echo "WARNING: Return code \"${tarrc}\" from tar while expanding ${tarfile}"
            exitval=2
          fi
          if [ -x ${GSKIT_HOME}/private_postinstall ] ; then 
            ${MQ_RUNSCRIPT} ${GSKIT_HOME}/private_postinstall
            gskrc=$?
            mv ${GSKIT_HOME}/private_postinstall ${GSKIT_HOME}/private_postinstall.${tarfile_root}
            if [ ${gskrc} -ne 0 ] ; then
              echo "WARNING: Return code \"${gskrc}\" from GSKit private_postinstall"
              exitval=2
            fi
          fi
        done
      find * -type d -exec chown -R mqm:mqm {} \;
      find * -type d -exec chmod -R u-w,g-w,o-w {}  \;
      find * -type l -exec chown -h mqm:mqm {} \;
      chown mqm:mqm *
      chmod  u-w,g-w,o-w *
    else 
      echo "WARNING:   Directory \"${GSKIT_HOME}\" not accessible  - update of GSKit component not possible"
      exitval=2
    fi
  else 
    echo "WARNING:   Directory \"${GSKIT_HOME}\" not found  - update of GSKit component not possible"
    exitval=2
  fi
  ;;
  -r ) 
#####################################################################################
#
#  remove files from expanded GSKit packages
#
#####################################################################################
    if [ -d ${GSKIT_HOME} ] ; then
      cd ${GSKIT_HOME}
      if [ `pwd` = ${GSKIT_HOME} ] ; then 
        ls  | grep -v ${TARFILE_SUFFIX}$ | xargs rm -rf 
      fi
    fi
  ;;
  * ) 
    echo "ERROR:   Option \"$1\" not supported"
    echo "         Usage $0 {-i | -r}"
    exitval=2
  ;;
  esac

exit ${exitval}
