#!/bin/sh
# bjorb startup script
#
# Copyright(c) 1998 Hitachi Microsoftware Systems, Inc.

GREP=/usr/bin/grep
KILL=/bin/kill
PS=/bin/ps
PSOPT="-e"
SED=/usr/bin/sed
ECHO=echo

PROG=bjorb
PREFIX=/usr/local
TARGET=${PREFIX}/sbin/$PROG
ETC_DIR=${PREFIX}/etc
SSLTOP=/usr/local/ssl

[ ! -d /usr/bin ] && exit       # /usr not mounted

###

osname=`uname -s | sed 's@/@@'`

if [ $osname = "FreeBSD" ]; then
  PS=/bin/ps
  PSOPT="-ax -o pid -o ucomm"
  KILL=/bin/kill
else
  PS=/usr/bin/ps
  PSOPT="-e"
  KILL=/usr/bin/kill
fi

if test X$osname = XSunOS; then
  ECHO=/usr/ucb/echo
fi


[ ! -x $GREP ] && GREP=`which grep`
[ ! -x $KILL ] && KILL=`which kill`
[ ! -x $PS   ] && PS=`which ps`
[ ! -x $SED  ] && SED=`which sed`

killproc() {            # kill the named process(es)
  pid=`$PS $PSOPT | $GREP $PROG | $SED -e 's/^  *//' -e 's/ .*//'`
  [ "$pid" != "" ] && $KILL $pid
}

# Start/stop processes required for samba server

do_start()
{
  if [ -x $TARGET ]; then
    if [ -f ${PREFIX}/etc/bjorb.conf ]; then
      echo " bjorb"
      $TARGET -D
    else
      echo bjorb: edit ${PREFIX}/etc/bjorb.conf to enable service.
    fi
  else
    echo not found $TARGET
  fi
}

### for install
   y_or_n()
   {
     read x
     if [ "X$x" = X ]; then
       echo $1
     elif [ "X$x" = "Xy" -o "X$x" = "XY" ]; then
       echo y
     else
       echo n
     fi
   }
   readline()
   {
     read x
     if [ "X$x" = X  ]; then
       echo $1
     else
       echo $x
     fi
   }

   ask_use_service()
   {
   #	$ECHO -n "Do you want to use $1 ([y]/n)? "
   #	if [ `y_or_n y` = y ]; then
		$ECHO -n "What's hostname of $2 server (localhost): "
		x=`readline localhost`
		eval `echo "$3=$x"`
   #	fi
   }

####
case "$1" in

'')
   do_start
   ;;
'start')
   do_start
   ;;
'stop')
   killproc
   ;;
'setup')

   ###


   ###

   if [ ! -f $ETC_DIR/bjorb.pem ]; then
     $SSLTOP/bin/req -new -x509 -out new.pem -nodes -days 365
     cat new.pem privkey.pem > $ETC_DIR/bjorb.pem
     rm new.pem privkey.pem
   fi

   ask_use_service "SSL Telnet" TELNET TELNET_HOST
   ask_use_service SMTP SMTP SMTP_HOST
   ask_use_service POP3 POP3 POP3_HOST
   ask_use_service IMAP4 IMAP4 IMAP4_HOST
   ask_use_service NetNews NNTP NNTP_HOST
   ask_use_service LDAP LDAP LDAP_HOST

   $ECHO "telnet: $TELNET_HOST"
   $ECHO "smtp  : $SMTP_HOST"
   $ECHO "pop3  : $POP3_HOST"
   $ECHO "imap4 : $IMAP4_HOST"
   $ECHO "nntp  : $NNTP_HOST"
   $ECHO "ldap  : $LDAP_HOST"

   if [ -f $ETC_DIR/bjorb.conf ]; then
     mv $ETC_DIR/bjorb.conf $ETC_DIR/bjorb.conf.old
     if [ $? != 0 ]; then
       $ECHO "aborted."
       exit
     fi
   fi
   sed "s/internal-telnet-host/$TELNET_HOST/; s/internal-smtp-host/$SMTP_HOST/; s/internal-pop3-host/$POP3_HOST/; s/internal-imap4-host/$IMAP4_HOST/; s/internal-nntp-host/$NNTP_HOST/; s/internal-ldap-host/$LDAP_HOST/;" \
	$ETC_DIR/bjorb.conf.sample \
        > $ETC_DIR/bjorb.conf

   if [ $? != 0 ]; then
     $ECHO "aborted."
     exit
   fi
   $ECHO "done."
   ;;
*)
   echo "Usage: bjorb.sh { start | stop | setup}"
   ;;
esac

