#!/bin/csh -f

set debug = 0

set period = 120 # seconds between checks of mail queue
# one minute = 60
# one hour = 3600
# four hours = 14400
# 24 hours = 86400
# 4 days = 346400
# 5 days = 432000

set reporttime = (200 600 3600 15000 86500 346500 433000 999999)
  # No. of seconds of mail queue being full to report.

set reportno = 1
set timenonempty = 0
while (1)
  mailq | head -1 | grep empty > /dev/null
  set curnonempty = $status
  if (! $curnonempty) then
    if ($reportno > 1) \
      echo "cmailq: Mail queue has cleared after $timenonempty seconds." \
        | mail rig
    set timenonempty = 0
    set reportno = 1
  else
    @ timenonempty += $period
    while ($timenonempty >= $reporttime[$reportno])
      @ reportno++
      if ($timenonempty < $reporttime[$reportno]) \
        echo "chmailq: Mail queue nonempty for last $timenonempty seconds." \
          | mail rig
    end
  endif
  if ($debug) \
    echo "chmailq: reportno,reporttime[reportno],timenonempty = $reportno,$reporttime[$reportno],$timenonempty."
  sleep $period
end
