#!/bin/sh

# This environment variable disables interactive glib debugging
GLIB_NO_DEBUG=TRUE ; export GLIB_NO_DEBUG

# Script variables
PS_CMD="ps auxww"
FONT_PATH="/usr/X11R6/lib/X11/fonts/misc,/usr/X11R6/lib/X11/fonts/75dpi,/usr/X11R6/lib/X11/fonts/sharefont/,/usr/X11R6/lib/X11/fonts/freefont"
GIMP_PATH="/usr/bin/gimp"
SFU_PATH="/usr/lib/gimp/plug-ins/script-fu"
LOG_PATH="/home/httpd/html/log/server-log"
OLD_LOG_PATH="/var/log/cooltext/logs"
ERR_PATH="/var/log/cooltext/server-errs"
SF_PORT=10008

# Quoted log path
Q_LOG_PATH=\"$LOG_PATH\"

killprog () {
  pids=`$PS_CMD | grep $1 | grep -v grep | awk '{print $2}'`
  if test "$pids" ; then
    for pid in $pids ; do
      kill -9 $pid
    done
  fi;
}

while test 1 = 1 ; do

  # make sure all applications are dead
  killprog Xvfb
  killprog $SFU_PATH
  sleep 1

  echo "(Re)starting script-fu server"

  # start the X virtual framebuffer
  /usr/bin/X11/Xvfb :1 -screen 0 10x10x8 -pixdepths 1 -fp $FONT_PATH &

  sleep 2

  echo "Framebuffer X server started"

  ~/net-fu/stats.pl &

  mv $LOG_PATH $OLD_LOG_PATH/log.`date +"%y%m%d%H%M"`

  # remove bastardized shared memory segments
  /usr/local/bin/rmshm

  echo "Starting GIMP"

  # run gimp in batch mode
  $GIMP_PATH --display :1.0 --no-interface --batch "(extension-script-fu-server 1 $SF_PORT $Q_LOG_PATH)" "(gimp-quit 0)" 2>&1 > $ERR_PATH

  echo "Server died"

done
