#!/usr/bin/ruby

require 'symbiosis/monitor/check'

# ensure pureftpd is running and can be connected to
class PureFtpdCheck < Symbiosis::Monitor::Check
  def initialize(connections)
    super pid_file: '/var/run/pure-ftpd/pure-ftpd.pid',
          init_script: '/etc/init.d/pure-ftpd',
          unit_name: 'pure-ftpd',
	  connections: connections
  end

  def do_response_check(responses)
    bad = responses.find { |l| l !~ /^2\d+[ -]/ }
    raise "Unexpected response '#{bad}'" unless bad.nil?
  end
end

connections = [
  Symbiosis::Monitor::TCPConnection.new(
    'localhost',
    'ftp',
    [/^\d+ /, "NOOP\r\n", /^\d+ /, "QUIT\r\n", /^\d /]
  )
]

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