#!/bin/sh
#
# Startup script for FramerD servers
#
# chkconfig: - 80 80
# description: FramerD is a distributed knowledge and processing server.
#              This file starts up the FramerD servers on this host
# processname: fdserver
# pidfile: /var/run/framerd.pid

export FDMANAGER=/usr/bin/fdmanager
export FDSERVER=/usr/bin/fdserver
export FDSERVER_USER=fdaemon
export FDSERVER_GROUP=fdaemon
CTLFILE=/usr/share/framerd/servers
PIDFILE=/var/run/framerd.pid
STATFILE=/var/run/framerd.status

# See how we were called.
case "$1" in
  start)
	if (test ! -s $CTLFILE) then
	  echo "No FramerD servers specified in " $CTLFILE
        else
          echo "Starting framerd servers from " $CTLFILE ":"
          $FDMANAGER $CTLFILE $PIDFILE $STATFILE &
          sleep 5; time=5;
          if ((test ! -f $STATFILE) && (test -f $PIDFILE)) then
	    echo "Waited $time seconds for fdmanager"; sleep 5; time=10
	  fi
          if ((test ! -f $STATFILE) && (test -f $PIDFILE)) then
	    echo "Waited $time seconds for fdmanager"; sleep 10; time=20
	  fi
          if ((test ! -f $STATFILE) && (test -f $PIDFILE)) then
	    echo "Waited $time seconds for fdmanager"; sleep 10; time=30
	  fi
          if ((test ! -f $STATFILE) && (test -f $PIDFILE)) then
	    echo "Waited $time seconds for fdmanager"; sleep 10; time=40
	  fi
          if ((test ! -f $STATFILE) && (test -f $PIDFILE)) then
	    echo "Waited $time seconds for fdmanager"; sleep 10; time=50
	  fi
          if ((test ! -f $STATFILE) && (test -f $PIDFILE)) then
	    echo "Waited $time seconds for fdmanager"; sleep 10; time=60
	  fi
          if ((test ! -f $STATFILE) && (test -f $PIDFILE)) then
	    echo "Waited $time seconds for fdmanager"; sleep 10; time=70
	  fi
          if ((test ! -f $STATFILE) && (test -f $PIDFILE)) then
	    echo "Waited $time seconds for fdmanager"; sleep 10; time=80
	  fi
          if ((test ! -f $STATFILE) && (test -f $PIDFILE)) then
	    echo "Waited $time seconds for fdmanager"; sleep 10; time=90
	  fi
          if ((test ! -f $STATFILE) && (test -f $PIDFILE)) then
	    echo "Waited $time seconds for fdmanager"; sleep 10; time=100
	  fi
          if ((test ! -f $STATFILE) && (test -f $PIDFILE)) then
	    echo "Waited $time seconds for fdmanager"; sleep 10; time=110
	  fi
          if ((test ! -f $STATFILE) && (test -f $PIDFILE)) then
	    echo "Waited $time seconds for fdmanager"; sleep 10; time=120
	  fi
          if (test -f $STATFILE) then
	    echo "fdmanager started in $time seconds"
	    cat $STATFILE
          elif (test ! -f $PIDFILE) then
	    echo "fdmanager failed to start"
          else
            echo "fdmanager hasn't finished starting up after $time seconds"
          fi
	fi
	;;
  stop)
        if (test -f $PIDFILE) then
          kill -SIGTERM `cat $PIDFILE`
	else echo "fdmanager is not running"
        fi
	while (test -f $PIDFILE)
	do sleep 1
	done
	;;
  status)
	if (test -f $STATFILE) then
	  cat $STATFILE
	else echo "fdmanager not running"
	fi
	;;
  restart|force-reload)
	$0 stop
	echo "Sleeping for 5 seconds before restart"
	sleep 5
	$0 start
	;;
  *)
	echo "Usage: $0 {start|stop|restart|status}"
	exit 1
esac

exit 0
