#!/bin/sh
# Small wait script based on watch_activities scripts.

# The goal is keep running until the activities.


function show_help ( )
{
  script_name=`basename $0`
  echo """
  Usage:
    $script_name <mysql_opt> [interval seconds] [timeout in seconds]
  Interval is default 5.
  Timeout default is 600 seconds.
  mysql_opt are default mysql command line options.
  Put them in quotes if more than one option is passed.

  Typical usage:
    $script_name erp5
    $script_name \"-h remotehost -u user erp5remote\" 3
  """
}

MYSQL_OPT=$1
INTERVAL=$2
TIMEOUT=$3
MYSQL_BIN=$MYSQL

if [ "$MYSQL_BIN" == "" ] ; then
  MYSQL_BIN='mysql'
fi

if [ "$MYSQL_OPT" == "" ] ; then
  show_help
  exit 1
fi

if [ "$INTERVAL" == "" ] ; then
  INTERVAL=5
fi
if [ "$TIMEOUT" == "" ] ; then
  TIMEOUT=600
fi

TIME=0

while true
do
    MESSAGE_VALUE=`echo "SELECT count(*) AS message_count FROM message;" | $MYSQL_BIN $MYSQL_OPT | grep -v message`
    MESSAGE_QUEUE_VALUE=`echo "SELECT count(*) AS message_count FROM message_queue;" | $MYSQL_BIN $MYSQL_OPT | grep -v message`
    if [ "$MESSAGE_VALUE" == "0" -a "$MESSAGE_QUEUE_VALUE" == 0 ] ; then
      exit 0
    fi
    sleep $INTERVAL;
    TIME="`expr $TIME + $INTERVAL`"
    if [ $TIME -gt $TIMEOUT ]
    then
        echo "Timeout"
        exit 1
    fi
done