#!/bin/sh

###############################################
# Sourcing macros
###############################################
DIRNAME=/usr/bin/dirname
. `$DIRNAME $0`/../lib/configinfo

###############################################

##############################################################################
# Configure portal server.
##############################################################################

ConfigurePS() {
  
   # Configure core portal, sample portal and mobile portal.
   $JAVA_HOME/bin/java -DPS_CONFIG_DEBUG=y -DDEPLOY_ADMIN_PASSWORD=${DEPLOY_ADMIN_PASSWORD} -DDS_DIRMGR_PASSWORD=${DS_DIRMGR_PASSWORD} -DIDSAME_LDAPUSER_PASSWORD=${IDSAME_LDAPUSER_PASSWORD} -DIDSAME_ADMIN_PASSWORD=${IDSAME_ADMIN_PASSWORD} -DSRA_LOG_USER_PASSWORD=${SRA_LOG_USER_PASSWORD} -cp config.jar com.sun.portal.config.Configure ${CONFIGURATION_MODE} "Portal Server" $PS_CONFIG_DIR
   $JAVA_HOME/bin/java -DPS_CONFIG_DEBUG=y -DDEPLOY_ADMIN_PASSWORD=${DEPLOY_ADMIN_PASSWORD} -DDS_DIRMGR_PASSWORD=${DS_DIRMGR_PASSWORD} -DIDSAME_LDAPUSER_PASSWORD=${IDSAME_LDAPUSER_PASSWORD} -DIDSAME_ADMIN_PASSWORD=${IDSAME_ADMIN_PASSWORD} -DSRA_LOG_USER_PASSWORD=${SRA_LOG_USER_PASSWORD} -cp config.jar com.sun.portal.config.Configure ${CONFIGURATION_MODE} "Sample Portal" $PS_CONFIG_DIR
   $JAVA_HOME/bin/java -DPS_CONFIG_DEBUG=y -DDEPLOY_ADMIN_PASSWORD=${DEPLOY_ADMIN_PASSWORD} -DDS_DIRMGR_PASSWORD=${DS_DIRMGR_PASSWORD} -DIDSAME_LDAPUSER_PASSWORD=${IDSAME_LDAPUSER_PASSWORD} -DIDSAME_ADMIN_PASSWORD=${IDSAME_ADMIN_PASSWORD} -DSRA_LOG_USER_PASSWORD=${SRA_LOG_USER_PASSWORD} -cp config.jar com.sun.portal.config.Configure ${CONFIGURATION_MODE} "Mobile Access Support" $PS_CONFIG_DIR

}

##############################################################################
# Configure Secure Remote Access Core
##############################################################################

ConfigureSRA() {

  # Configure SRACore and SampleSRA.
  $JAVA_HOME/bin/java -DPS_CONFIG_DEBUG=y -DDEPLOY_ADMIN_PASSWORD=${DEPLOY_ADMIN_PASSWORD} -DDS_DIRMGR_PASSWORD=${DS_DIRMGR_PASSWORD} -DIDSAME_LDAPUSER_PASSWORD=${IDSAME_LDAPUSER_PASSWORD} -DIDSAME_ADMIN_PASSWORD=${IDSAME_ADMIN_PASSWORD} -DSRA_LOG_USER_PASSWORD=${SRA_LOG_USER_PASSWORD} -cp config.jar com.sun.portal.config.Configure ${CONFIGURATION_MODE} "SRA Support" $PS_CONFIG_DIR
  $JAVA_HOME/bin/java -DPS_CONFIG_DEBUG=y -DDEPLOY_ADMIN_PASSWORD=${DEPLOY_ADMIN_PASSWORD} -DDS_DIRMGR_PASSWORD=${DS_DIRMGR_PASSWORD} -DIDSAME_LDAPUSER_PASSWORD=${IDSAME_LDAPUSER_PASSWORD} -DIDSAME_ADMIN_PASSWORD=${IDSAME_ADMIN_PASSWORD} -DSRA_LOG_USER_PASSWORD=${SRA_LOG_USER_PASSWORD} -cp config.jar com.sun.portal.config.Configure ${CONFIGURATION_MODE} "Sample SRA" $PS_CONFIG_DIR

}

##############################################################################
# Configure Gateway
##############################################################################

ConfigureGW() {

  # Configure Gateway
  $JAVA_HOME/bin/java -DPS_CONFIG_DEBUG=y -DDEPLOY_ADMIN_PASSWORD=${DEPLOY_ADMIN_PASSWORD} -DDS_DIRMGR_PASSWORD=${DS_DIRMGR_PASSWORD} -DIDSAME_LDAPUSER_PASSWORD=${IDSAME_LDAPUSER_PASSWORD} -DIDSAME_ADMIN_PASSWORD=${IDSAME_ADMIN_PASSWORD} -DSRA_LOG_USER_PASSWORD=${SRA_LOG_USER_PASSWORD} -DSRA_CERT_PASSWORD=${CERT_DB_PASSWORD} -cp config.jar com.sun.portal.config.Configure ${CONFIGURATION_MODE} "Gateway" $PS_CONFIG_DIR

}

##############################################################################
# Configure NetletProxy
##############################################################################

ConfigureNLP() {

  # Configure NetletProxy
  $JAVA_HOME/bin/java -DPS_CONFIG_DEBUG=y -DDEPLOY_ADMIN_PASSWORD=${DEPLOY_ADMIN_PASSWORD} -DDS_DIRMGR_PASSWORD=${DS_DIRMGR_PASSWORD} -DIDSAME_LDAPUSER_PASSWORD=${IDSAME_LDAPUSER_PASSWORD} -DIDSAME_ADMIN_PASSWORD=${IDSAME_ADMIN_PASSWORD} -DSRA_LOG_USER_PASSWORD=${SRA_LOG_USER_PASSWORD} -DSRA_CERT_PASSWORD=${CERT_DB_PASSWORD} -cp config.jar com.sun.portal.config.Configure ${CONFIGURATION_MODE} "Netlet Proxy" $PS_CONFIG_DIR

}

##############################################################################
# Configure RewriterProxy
##############################################################################

ConfigureRWP() {
  # Configure RewriterProxy
  $JAVA_HOME/bin/java -DPS_CONFIG_DEBUG=y -DDEPLOY_ADMIN_PASSWORD=${DEPLOY_ADMIN_PASSWORD} -DDS_DIRMGR_PASSWORD=${DS_DIRMGR_PASSWORD} -DIDSAME_LDAPUSER_PASSWORD=${IDSAME_LDAPUSER_PASSWORD} -DIDSAME_ADMIN_PASSWORD=${IDSAME_ADMIN_PASSWORD} -DSRA_LOG_USER_PASSWORD=${SRA_LOG_USER_PASSWORD} -DSRA_CERT_PASSWORD=${CERT_DB_PASSWORD} -cp config.jar com.sun.portal.config.Configure ${CONFIGURATION_MODE} "Rewriter Proxy" $PS_CONFIG_DIR

}

##############################################################################
# Invoke configure command
##############################################################################

ConfigureComponent() {
  
  COMPONENT=$1
  if [ "$COMPONENT" = "PS" ]; then
    ConfigurePS
  elif [ "$COMPONENT" = "SRA" ]; then
    ConfigureSRA
  elif [ "$COMPONENT" = "GW" ]; then
    ConfigureGW
  elif [ "$COMPONENT" = "NLP" ]; then
    ConfigureNLP
  elif [ "$COMPONENT" = "RWP" ]; then
    ConfigureRWP
  fi

}

##############################################################################
# Show the error message saying the product is already configured.
##############################################################################

ShowErrorMessage() {
  
  COMPONENT=$1
  MSG="is already configured in the system"
  if [ "$COMPONENT" = "PS" ]; then
     MSG="PortalServer $MSG. Remove $PS_CONFIG_DIR/PSConfig.properties if you want to reconfigure."
  elif [ "$COMPONENT" = "SRA" ]; then
     MSG="SRACore $MSG. Remove $PS_CONFIG_DIR/SRAConfig.properties if you want to reconfigure."
  elif [ "$COMPONENT" = "GW" ]; then
     MSG="Gateway $MSG. Remove $PS_CONFIG_DIR/GWConfig.properties if you want to reconfigure."
  elif [ "$COMPONENT" = "NLP" ]; then
     MSG="NetletProxy $MSG. Remove $PS_CONFIG_DIR/NLPConfig.properties if you want to reconfigure."
  elif [ "$COMPONENT" = "RWP" ]; then
     MSG="RewriterProxy $MSG. Remove $PS_CONFIG_DIR/RWPConfig.properties if you want to reconfigure."
  fi
  
  $ECHO ""
  $ECHO $MSG
  $ECHO ""

}


##############################################################################
# Collect the configuration parameters and invoke configure component command.
##############################################################################

Configure() {

  LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
  export LD_LIBRARY_PATH

   if [ "$CONFIGURATION_MODE" = "unconfigurewithscrubds" ];then
   	   CONFIGURATION_MODE="scrubds"
	   export CONFIGURATION_MODE
	   Configure
     	   CONFIGURATION_MODE="unconfigure"
	   export CONFIGURATION_MODE  
   fi

   if [ "$CONFIGURATION_MODE" = "unconfigurewithoutscrubds" ];then
   	   CONFIGURATION_MODE="unconfigure"
           export CONFIGURATION_MODE  
   fi

  CONFIGURE_COMPONENTS=""
   
  for INSTALLED_COMPONENT_TO_CONFIGURE in $LIST_OF_COMPONENTS_TO_CONFIGURE; do

   if [ "$CONFIGURATION_MODE" = "configure" ]; then
    if [ ! -f "$PS_CONFIG_DIR/${INSTALLED_COMPONENT_TO_CONFIGURE}Config.properties" ];then
      GetConfigInfo $INSTALLED_COMPONENT_TO_CONFIGURE
      CONFIGURE_COMPONENTS="$CONFIGURE_COMPONENTS $INSTALLED_COMPONENT_TO_CONFIGURE"
    else
      ShowErrorMessage $INSTALLED_COMPONENT_TO_CONFIGURE
    fi
  fi
  
  if [ "$CONFIGURATION_MODE" = "unconfigure" ] || [ "$CONFIGURATION_MODE" = "scrubds" ]; then
    if [ -f "$PS_CONFIG_DIR/${INSTALLED_COMPONENT_TO_CONFIGURE}Config.properties" ];then
      GetConfigInfo $INSTALLED_COMPONENT_TO_CONFIGURE
      CONFIGURE_COMPONENTS="$CONFIGURE_COMPONENTS $INSTALLED_COMPONENT_TO_CONFIGURE"
    else
	$ECHO "`$GETTEXT 'Inavlid Option. Please Check whether '${INSTALLED_COMPONENT_TO_CONFIGURE}' is Configured.'` $BELL_CHAR"
    fi
  fi
  done

  for CONFIGURE_COMPONENT in $CONFIGURE_COMPONENTS; do
    ConfigureComponent $CONFIGURE_COMPONENT
  done

}

##############################################################################
# Main                                                                       #
##############################################################################

# Set the silent state file.
if [ "$1" = "-s" ]; then
  PS_SILENT_FILE="$2"
  export PS_SILENT_FILE
fi

$ECHO ""
###  Checking if JavaHome has been set
CheckJavaHome
$ECHO ""

# Get list of components to be configured into LIST_OF_COMPONENTS_TO_CONFIGURE list
GetComponentList

Configure
