#!/bin/bash
#
# Selenium
#
# chkconfig: 345 90 25
# description: Selenium service

# Source function library.
. /etc/init.d/functions

java_bin=/usr/bin/java

xvfb_bin=/usr/bin/xvfb-run

selenium_dir={{ selenium_install_dir }}/selenium
selenium_jar_file="$selenium_dir/selenium-server-standalone-{{ selenium_version }}.jar"
user=root
display="{{ selenium_display_id }}"
exec="$xvfb_bin {{ selenium_xvfb_args }} --server-num=$display $java_bin"
args=" -client -jar $selenium_jar_file -p {{ selenium_port }}"
lockfile="/var/lock/subsys/selenium"
pidfile="$selenium_dir/selenium.pid"
logfile="$selenium_dir/selenium.log"
prog="selenium"

RETVAL=0

start() {
  echo -n $"Starting $prog: "

  touch $pidfile
  chown $user $pidfile

  touch $logfile
  chown $user $logfile

  /bin/su - $user -c "DISPLAY=\":$display\" $exec $args >> $logfile 2>&1 & echo \$! > $pidfile"

  sleep 2

  pgrep -fl $prog
  RETVAL=$?
  [ $RETVAL -eq 0 ] && echo_success || echo_failure

  return $RETVAL
}

stop() {
  echo -n $"Stopping $prog: "
  killproc -p $pidfile $prog
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && rm -f $lockfile $pidfile
  return $RETVAL
}

restart() {
  stop
  sleep 2
  start
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    status -p ${pidfile} ${prog}
    RETVAL=$?
    ;;
  restart)
    restart
    ;;
  *)
    echo $"Usage: $0 {start|stop|restart}"
    exit 1
esac
