#!/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/local/bin/gimp"
SFU_PATH="/usr/local/lib/gimp/0.99.14/plug-ins/script-fu"
LOG_PATH="/home/spencer/src/net-fu/server-log"
OLD_LOG_PATH="/home/spencer/src/net-fu/logs"
ERR_PATH="/home/spencer/src/net-fu/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

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

  sleep 2

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

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

  # 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

done
