#!/bin/sh

# helper script for iPrint Watchdog (iPrintMan.py)
# A. Gebhardt <albrecht.gebhardt@uni-klui.ac.at>
#

usage () {
  echo "usage: $0 start|stop|restart|check|status"
  exit 0
}


if [ -z "$1" ]; then
  usage
  exit 0
fi

ACTION=$1

# get PID(s) of running listener(s)
LSTNPID=$(ps axuw| grep -v grep | \
          grep /opt/novell/iprint/bin/iprint-listener | \
          grep "$LOGNAME" | awk '{print $2}')
if [ -n "$LSTNPID" ]; then
  CNT=0
  for i in "$LSTNPID"; do
    CNT=$(( $CNT + 1 ))
  done
  if [ "$CNT" -gt 1 ]; then
    echo "multiple listeners running, killing all and forcing restart!"
    for i in "$LSTNPID"; do
      kill $i 
      sleep 1
      if [ -n "$(ps axuw|grep -v grep | grep $i| grep /opt/novell/iprint/bin/iprint-listener)" ]; then
         kill -9 $i 
      fi
    done
    $0 restart
  fi
fi

case $ACTION in 
  start)
  /opt/novell/iprint/bin/iprint-listener &
;;
  stop)
  if [ -n "$LSTNPID" ]; then
    for i in "$LSTNPID"; do
      kill $i 
      sleep 1
      if [ -n "$(ps axuw|grep -v grep|grep $i| grep /opt/novell/iprint/bin/iprint-listener)" ]; then
         kill -9 $i 
      fi
    done
  fi
;;
  restart)
  $0 stop
  $0 start
;;
  check)
  if [ -z "$LSTNPID" ]; then
    $0 start
  fi
;;
  status)
  if [ -n "$LSTNPID" ]; then
    if [ -r "$HOME/.iprint/userreg.txt" ]; then
      LASTUSER=$(awk '/LastNetworkUser/{print $2}' $HOME/.iprint/userreg.txt)
    fi
    if [ -n "$LASTUSER" ]; then
      echo "running ($LASTUSER)"
    else
      echo "running"
    fi
    exit 0
  else
    echo "not running"
    exit 1
  fi
;;
  *)
  usage
;;
esac
