#!/bin/ksh
# Copyright 01/12/03 Sun Microsystems, Inc. All Rights Reserved.
# @(#)prepatch        1.15 01/12/03 Sun Microsystems

if [ ${ROOTDIR} != "/" ]; then
  echo "ERROR: This patch does not support relocatability through the use of a client_root_path specified with the -R flag"
  exit 1;
fi

PROC=`uname -p`
if [ "$PROC" = "sparc" ]; then
  PATCHID="118263-17"
elif [ "$PROC" = "i386" ]; then
  PATCHID="118264-17"
fi

CP=/usr/bin/cp
GREP=/usr/bin/grep
SED=/usr/bin/sed
UNIQ=/usr/bin/uniq
ECHO=/usr/bin/echo
CHMOD=/usr/bin/chmod

GrabConfig() {
  local FILE=$1
  local KEY=$2
  local SEPARATOR=$3

  ANSWER=`$GREP "^$KEY$SEPARATOR" $FILE | $UNIQ | $SED -e "s/$KEY$SEPARATOR//"`
}

BELL_CHAR='\a'

# Portal server only
pkginfo -q SUNWps
if [ $? -eq 0 ]; then

  PS_STATE_FILE="/etc/opt/SUNWps/PSConfig.properties"
  if [ ! -f $PS_STATE_FILE ]; then
    $ECHO "Error: $PS_STATE_FILE does not exist. $BELL_CHAR"
    exit 1
  fi

  GrabConfig $PS_STATE_FILE "BASEDIR" "="
  if [ "$ANSWER" != "" ]; then
     PS_INSTALL_DIR=$ANSWER
  else
    $ECHO "Error: Cannot determine BASEDIR. $BELL_CHAR"
    exit 1
  fi

  GrabConfig $PS_STATE_FILE "DEPLOY_TYPE" "="
  if [ "$ANSWER" != "" ]; then
    DEPLOY_TYPE=$ANSWER
  else
    $ECHO "Warning: Cannot determine DEPLOY_TYPE. $BELL_CHAR"
  fi

  # Permission fix for SUNWps
  if [ "$PS_INSTALL_DIR" != "" ]; then
    $CHMOD 755 $PS_INSTALL_DIR/SUNWps
  fi

  # PST requirement to check that the services are running
  GrabConfig $PS_STATE_FILE "SERVER_PORT" "="
  NETWORK_PORT=$ANSWER
  GrabConfig $PS_STATE_FILE "DEPLOY_ADMIN_HOST" "="
  DEPLOY_HOST=$ANSWER
  if [ -f $PS_INSTALL_DIR/SUNWps/bin/checkport ]; then
    $PS_INSTALL_DIR/SUNWps/bin/checkport $DEPLOY_HOST $NETWORK_PORT 2
    if [ $? -eq 1 ]; then
      $ECHO "One or more of the required services are not running."
      $ECHO "Please start them before attempting to apply the patch."
      exit 1;
    fi
  fi

  ## Rev02Mod01 bug no. 5083578 ##
  /usr/bin/pkginfo -q SUNWpsssoa
  if [ $? -eq 0 ]; then

    SSO_ADMIN_DIR=$PS_INSTALL_DIR/SUNWps/web-src/ps/ssoadapteradmin

    if [ ! -f $SSO_ADMIN_DIR/AddProperty.jsp.pre$PATCHID ]; then
      $CP $SSO_ADMIN_DIR/AddProperty.jsp $SSO_ADMIN_DIR/AddProperty.jsp.pre$PATCHID
    fi
    if [ ! -f $SSO_ADMIN_DIR/EditTemplateProperties.jsp.pre$PATCHID ]; then
      $CP $SSO_ADMIN_DIR/EditTemplateProperties.jsp $SSO_ADMIN_DIR/EditTemplateProperties.jsp.pre$PATCHID
    fi
    if [ ! -f $SSO_ADMIN_DIR/PropertyPickType.jsp.pre$PATCHID ]; then
      $CP $SSO_ADMIN_DIR/PropertyPickType.jsp $SSO_ADMIN_DIR/PropertyPickType.jsp.pre$PATCHID
    fi

  fi
  ## End of Rev02Mod01 bug no. 5083578 ##

  DEPLOY=$PS_INSTALL_DIR/SUNWps/bin/deploy

  $ECHO ""
  $ECHO "To complete the patch install, you must deploy"
  $ECHO "the updated web application using:"
  $ECHO "# $DEPLOY redeploy"
  $ECHO "and then restart your web container instances."
  $ECHO ""

  if [ $DEPLOY_TYPE="IWS" ]; then

      GrabConfig $PS_STATE_FILE "DEPLOY_INSTANCE" "="
      if [ "$ANSWER" != "" ]; then
        DEPLOY_INSTANCE=$ANSWER
      else
        $ECHO "Warning: Cannot determine DEPLOY_INSTANCE. $BELL_CHAR"
        DEPLOY_INSTANCE="<deploy-instance>"
      fi

      GrabConfig $PS_STATE_FILE "DEPLOY_URI" "="
      if [ "$ANSWER" != "" ]; then
        DEPLOY_URI=$ANSWER
      else
        $ECHO "Warning: Cannot determine DEPLOY_URI. $BELL_CHAR"
        DEPLOY_URI="<deploy-uri>"
      fi

      $ECHO "WARNING: The deploy command redeploys content from $PS_INSTALL_DIR/SUNWps/web-src"
      $ECHO "to /var/opt/SUNWps/https-$DEPLOY_INSTANCE$DEPLOY_URI/web-apps"
      $ECHO "Any customisations to the Portal web application should always be made"
      $ECHO "to web-src and then deployed to web-apps. Ensure that any changes you"
      $ECHO "have made under web-apps have been replicated in web-src before"
      $ECHO "running deploy, or they will be lost."
      $ECHO ""
  fi
fi

# Create a temporary copy of the current start scripts
# in case one of the postpatch rev_mods blocks wants to retain it
pkginfo -q SUNWpsgw
if [ $? -eq 0 ]; then

  GW_STATE_FILE="/etc/opt/SUNWps/GWConfig.properties"
  if [ ! -f $GW_STATE_FILE ]; then
    $ECHO "Error: $GW_STATE_FILE does not exist. $BELL_CHAR"
    exit 1
  fi

  GrabConfig $GW_STATE_FILE "GW_BASEDIR" "="
  if [ "$ANSWER" != "" ]; then
     GW_INSTALL_DIR=$ANSWER
  else
     $ECHO "Error: Cannot determine GW_BASEDIR. $BELL_CHAR"
     exit 1
  fi

  $CP $GW_INSTALL_DIR/SUNWps/bin/gateway /tmp/gateway.prepatch
fi # End of checking for Gateway node

pkginfo -q SUNWpsnlp
if [ $? -eq 0 ]; then

  NLP_STATE_FILE="/etc/opt/SUNWps/NLPConfig.properties"
  if [ ! -f $NLP_STATE_FILE ]; then
    $ECHO "Error: $NLP_STATE_FILE does not exist. $BELL_CHAR"
    exit 1
  fi

  GrabConfig $NLP_STATE_FILE "NLP_BASEDIR" "="
  if [ "$ANSWER" != "" ]; then
     NLP_INSTALL_DIR=$ANSWER
  else
     $ECHO "Error: Cannot determine NLP_BASEDIR. $BELL_CHAR"
     exit 1
  fi

  $CP $NLP_INSTALL_DIR/SUNWps/bin/netletd /tmp/netletd.prepatch
fi # End of checking for NetletProxy node

pkginfo -q SUNWpsrwp
if [ $? -eq 0 ]; then

  RWP_STATE_FILE="/etc/opt/SUNWps/RWPConfig.properties"
  if [ ! -f $RWP_STATE_FILE ]; then
    $ECHO "Error: $RWP_STATE_FILE does not exist. $BELL_CHAR"
    exit 1
  fi

  GrabConfig $RWP_STATE_FILE "RWP_BASEDIR" "="
  if [ "$ANSWER" != "" ]; then
     RWP_INSTALL_DIR=$ANSWER
  else
     $ECHO "Error: Cannot determine RWP_BASEDIR. $BELL_CHAR"
     exit 1
  fi

  $CP $RWP_INSTALL_DIR/SUNWps/bin/rwproxyd /tmp/rwproxyd.prepatch
fi # End of checking for RewriterProxy node

