#!/usr/bin/ruby

require 'symbiosis/monitor/check'

# Ensure spamassassin is running and responds to pings
class SpamdCheck < Symbiosis::Monitor::Check
  def initialize(connections)
    super pid_file: '/var/run/spamd.pid',
          init_script: '/etc/init.d/spamassassin',
          unit_name: 'spamassassin',
          process_name: '/usr/sbin/spamd',
          connections: connections
  end

  def should_be_running?
    !Dir.glob('/srv/*/config/antispam').empty?
  end

  def do_response_check(responses)
    raise "Unexpected response '#{responses.first}'" unless responses.first =~ /PONG/
  end
end

connections = [
  Symbiosis::Monitor::TCPConnection.new(
    'localhost', 'spamd', ["PING SPAMC/1.3\r\n", nil]
  )
]

exit SpamdCheck.new(connections).do_check if $PROGRAM_NAME == __FILE__
