#!/bin/sh
#=================================================================
### BEGIN INIT INFO
# Provides:          zoneminder
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $network $remote_fs $syslog
# Should-Start:      mysql
# Should-Stop:       mysql
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description:  Control ZoneMinder as a Service
### END INIT INFO
#=================================================================
# description: Control ZoneMinder as a Service
# chkconfig: 2345 80 20

# Source function library.
. /lib/lsb/init-functions

prog=ZoneMinder
ZM_PATH_BIN="/usr/bin"
RUNDIR=/var/run/zm
TMPDIR=/tmp/zm
command="$ZM_PATH_BIN/zmpkg.pl"

start()

{
log_info_msg "Starting $prog: "
export TZ=:/etc/localtime
mkdir -p $RUNDIR $TMPDIR && chown www-data:www-data $RUNDIR $TMPDIR
$command start
RETVAL=$?
evaluate_retval
return $RETVAL
}

stop()

{
log_info_msg "Stopping $prog: "
#
# Why is this status check being done?
# as $command stop returns 1 if zoneminder 
# is stopped, which will result in 
# this returning 1, which will stuff 
# dpkg when it tries to stop zoneminder before
# uninstalling . . . 
#
result=`$command status`
if [ ! "$result" = "running" ]; then
  log_warning_msg "\n Zoneminder already stopped"
  RETVAL=0
else
  $command stop
  evaluate_retval
  RETVAL=$?
  rm -f /var/lock/zm
fi
}

status()

{
result=`$command status`
if [ "$result" = "running" ]; then
  echo "ZoneMinder is running"
  RETVAL=0
else
  echo "ZoneMinder is stopped"
  RETVAL=1
fi
}

case "$1" in
  'start')
     start
     ;;

  'stop')
     stop
     ;;

  'restart' | 'force-reload')
     stop
     sleep 1
     start
     ;;

  'status')
     status
     ;;

  *)
     echo "Usage: $0 { start | stop | restart | status }"
     RETVAL=1
     ;;
  esac
exit $RETVAL
