#!/usr/bin/env ruby # -*- mode: ruby -*-

require 'rubygems' unless defined?(Gem)

require 'bundler/setup' Bundler.require

require_relative '../lib/<%= name.downcase %>.rb'

service = SubZero::Main.boot ARGV

daemon_opts = {

multiple: false,
dir_mode: :normal,
dir: service.cli_args[:pid_path], # FIXME
log_output: true,
stop_proc: lambda { $stop_requested = true }

}

Daemons.run_proc '<%= name %>', daemon_opts do

daemon = <%= name.capitalize %>::Main.new service

start = Time.now
ping_at = start + 5

Signal.trap('INT') { daemon.do_exit_cleanup; exit }

loop do
  daemon.poll_sockets

  now = Time.now
  if now >= ping_at
    daemon.ping
    ping_at = now + 15
  end

  break if $stop_requested

end

daemon.do_exit_cleanup
exit 0

end