#!/bin/bash
NAME=flumotion-test
PROTOCOL=tcp
PORT=8642
HOST=localhost
FLOW=''

while getopts "n:sp:h:c:" OPTION
do
     case $OPTION in
         n)
             NAME=$OPTARG
             ;;
         s)
             PROTOCOL=ssl
             ;;
         p)
             PORT=$OPTARG
             ;;
         h)
             HOST=$OPTARG
             ;;
         c)
             FLOW=$OPTARG
             ;;
     esac
done

flumotion-manager -v -T $PROTOCOL \
                  -H $HOST \
                  -P $PORT \
                  -n $NAME \
                  -d 5 \
		  conf/managers/default/planet.xml $FLOW >& /tmp/$NAME.manager.log &
manager_pid=$!

flumotion-worker -v -T $PROTOCOL \
                 -H $HOST \
                 -P $PORT \
                 -d 5 \
		 -u user -p test >& /tmp/$NAME.worker.log  &
worker_pid=$!

MANAGER=user:test@$HOST:$PORT

killed()
{
  echo 'Ctrl-C caught'
  kill -9 $manager_pid $worker_pid
  exit 1;
}

trap killed SIGINT SIGTERM

EXTRAOPT=
if [ "$PROTOCOL" = "tcp" ]; then
  EXTRAOPT="--no-ssl"
fi

while true; do
  flumotion-command -m $MANAGER $EXTRAOPT \
                    worker list 2> /dev/null
  EXITCODE=$?
  if test "$EXITCODE" = "0"; then
    echo "Manager and Worker are ready and waiting. ($PROTOCOL/$PORT)"
    break
  fi
done

wait $manager_pid $worker_pid
exit 0;
