#! /bin/sh
#set -x
#=========================================================================
# Copyright (C) VMware, Inc. 1986-2011.  All Rights Reserved..
#
# Name - gemnetobject.sh
#
# Purpose - Script to run remote gem.
#
#	It is expressly permitted to make a copy of this file in some
#	other directory than $GEMSTONE/bin; hence help logic
#	is different here.
#
# $Id: gemnetobject.sh,v 1.5 2008-01-09 22:50:52 stever Exp $
#
#=========================================================================

if [ "a$GEMSTONE" = "a" ]; then
  echo "ERROR: GemStone scripts require a GEMSTONE environment variable."
  echo "       Please set it to the directory where GemStone resides."
  exit 1
fi

if [ "x$PATH" = "x" ]; then PATH=:/bin:/usr/bin:/usr/ucb; export PATH; fi 

# error control - do not allow hup
trap '' 1

comid="gemnetobject"			# this script's name
Syntax="Usage: gemnetobject <protocol> <wellknown> <timeout> [ -h ]"
Hp="
	protocol	- network protocol for connection, such as \"TCP\"
	wellknown	- bound network address, such as a TCP/IP port number
	timeout		- how long, in seconds, to wait for connection"

Descript="
This Bourne shell script is invoked by a netldi to start a GemStone
session process, in response to a request of the netldi for a GemStone
session.  By default, the file $GEMSTONE/bin/services.dat translates the
GemStone service name gemnetobject to a command that executes this
script.  If no such translation is found, the command
\$HOME/gemnetobject is executed instead.

This script may  be  edited  to  change  the default gemname and/or gemdir
for custom gem executables.
"

# give a little help
if [ "x$1" = "xhelp" ] || [ "x$1" = "x-h" ] || [ "x$1" = "x-H" ]; then
  echo "$Syntax"; echo "$Hp"; echo "$Descript"; exit
fi

###########################################################################
################# User-definable symbols 
###########################################################################
gemname="gem"                   # name of the gem to execute
gemdir=""                       # directory where the gem lives
systemConfig=""                 # GEMSTONE_SYS_CONF
exeConfig=""                    # GEMSTONE_EXE_CONF
###########################################################################
#netldiSpec not set
#runpgsvrSpec not set
appName=$gemname		# application name, for configuration

###########################################################################
################# User-Changeable Option 
################# Uncomment this block of code to enable Kerberos authentication
###########################################################################
#if [ "x$runpgsvr" = "x" ]; then
#  runpgsvr=\!#krb#dbf\!runpgsvr ; export runpgsvr
#fi
###########################################################################

# Misc support...
. $GEMSTONE/bin/misc.sh

# set configuration args
. $GEMSTONE/bin/setconfig.sh	

# determine gemname's location
if [ "$gemdir" = "" ]; then
  gemdir=$GEMSTONE/sys
fi
requireExes $gemdir/$gemname

# show what we have
hName=`/bin/uname -n`
echo "${comId}[Info]:    the hostname is:  $hName"
echo "   GEMSTONE is:      \"${GEMSTONE}\""
echo "   ${gemname}\'s location is: $gemdir"
echo "   system config file is:     $GEMSTONE_SYS_CONF"
echo "   executable config file is: $GEMSTONE_EXE_CONF"
echo "   ${gemname}\'s arguments are: $1 $2 $3 "

# The default behaviour is to delete this process's log file if it exits
# normally. If you want to keep this process's log file even on normal exit
# then unset GEMSTONE_CHILD_LOG.
#unset GEMSTONE_CHILD_LOG

# By default a gem will raise its number of descriptors to whatever the
# hard limit is. By setting GEMSTONE_MAX_FD to a positive number the
# gem will only raise its descriptors to that number.
# If GEMSTONE_MAX_FD is set to 0 then the gem will not modify its descriptor
# limit
# export GEMSTONE_MAX_FD=?

# start up gemname   
#  	sleep 3600 # enable for DEBUGGING
#       exit 0 # enable for DEBUGGING
exec $gemdir/$gemname $1 $2 $3
# with the above exec nothing after this is ever executed
