#!/bin/sh
# Tungsten Replicator @VERSION@
# (c) 2009 Continuent, Inc.  All rights reserved. 
#
# Replicator *nix thl utility's startup script
#
# Environmental variables accepted by this script: 
#   JAVA_HOME - Java release directory
#   JVM_OPTIONS - Java VM options (e.g. -Xmx=1024M)
#   REPLICATOR_LOG_DIR - Replicator log directory (defaults to $RPHOME/log)
#   REPLICATOR_RMI_PORT - Port used for JMX administration calls

# Loader utility main class. 
LOADER_CTRL=com.continuent.tungsten.replicator.loader.LoaderCtrl

# Find home. 
RPBIN=`dirname $0`
RPHOME=`cd $RPBIN/..; pwd`
CLUSTER_HOME=$RPHOME/../cluster-home

# Add jars from all directories to class path.
for jar in $RPHOME/lib/*.jar $RPHOME/lib-ext/*.jar; do 
  if [ -z "$CP" ]; then
    CP=$jar
  else
    CP=$CP:$jar
  fi
done

# Add configuration directory to class path. 
CP=$CP:$RPHOME/conf
# Add cluster-home/lib to class path
CP=$CP:$CLUSTER_HOME/lib/*

# Find Java.
if [ -z "$JAVA_HOME" ]; then
  JAVA=`which java`
else
  JAVA=$JAVA_HOME/bin/java
fi
if [ ! -x "$JAVA" ]; then
  echo "Cannot find java command.  Please set the JAVA_HOME environment"
  echo "variable or add java to the execution path."
  exit 1
fi

# Set log directory. 
if [ -z "$REPLICATOR_LOG_DIR" ]; then 
  REPLICATOR_LOG_DIR=$RPHOME/log
fi
if [ ! -d "$REPLICATOR_LOG_DIR" ]; then
  echo "Cannot find replicator log directory: $REPLICATOR_LOG_DIR"
  exit 1
fi
JVM_OPTIONS="${JVM_OPTIONS} -Dreplicator.log.dir=$REPLICATOR_LOG_DIR" 

# Set RMI port. 
if [ ! -z "$REPLICATOR_RMI_PORT" ]; then
  JVM_OPTIONS="${JVM_OPTIONS} -Dreplicator.rmi_port=$REPLICATOR_RMI_PORT"
fi

# Uncomment to debug replicator THL client. 
#REPLICATOR_JVMDEBUG_PORT=54002
#JVM_OPTIONS="${JVM_OPTIONS} -enableassertions -Xdebug -Xnoagent -Djava.compiler=none -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=$REPLICATOR_JVMDEBUG_PORT"

# Run the utility. 
$JAVA -cp $CP -Dreplicator.home.dir=$RPHOME $JVM_OPTIONS $LOADER_CTRL $*
