Sha256: 608d93011adec38e78b90daf3bd581e6bd9935d38071518a54e5f478aff55997

Contents?: true

Size: 1.79 KB

Versions: 3

Compression:

Stored size: 1.79 KB

Contents

#!/usr/bin/env ruby
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))

require 'getoptlong'
require 'rubygems'
require 'daemons'
require 'eventmachine'
require 'racoon'
require 'racoon/server'
require 'csv'

def usage
  puts "Usage: racoond [switches] --beanstalk a.b.c.d:11300,...,w.x.y.z:11300"
  puts " --beanstalk <127.0.0.1:11300>        csv list of ip:port for beanstalk servers"
  puts " --pid </var/run/racoond.pid>         the path to store the pid"
  puts " --log </var/log/racoond.log>         the path to store the log"
  puts " --daemon                             to daemonize the server"
  puts " --help                               this message"
end

def daemonize
  Daemonize.daemonize(@log_file, 'racoond')
  open(@pid_file,"w") { |f| f.write(Process.pid) }
  open(@pid_file,"w") do |f|
    f.write(Process.pid)
    File.chmod(0644, @pid_file)
  end
end

opts = GetoptLong.new(
  ["--beanstalk", "-b", GetoptLong::REQUIRED_ARGUMENT],
  ["--pid", "-i", GetoptLong::REQUIRED_ARGUMENT],
  ["--log", "-l", GetoptLong::REQUIRED_ARGUMENT],
  ["--help", "-h", GetoptLong::NO_ARGUMENT],
  ["--daemon", "-d", GetoptLong::NO_ARGUMENT]
)

beanstalks = ["127.0.0.1:11300"]
@pid_file = '/var/run/racoond.pid'
@log_file = '/var/log/racoond.log'
daemon = false

opts.each do |opt, arg|
  case opt
  when '--help'
    usage
    exit 1
  when '--beanstalk'
    beanstalks = CSV.parse(arg)[0]
  when '--pid'
    @pid_file = arg
  when '--log'
    @log_file = arg
  when '--daemon'
    daemon = true
  end
end

Racoon::Config.logger = Logger.new(@log_file)

daemonize if daemon
server = Racoon::Server.new(beanstalks) do |feedback_record|
  Racoon::Config.logger.info "Received feedback at #{feedback_record[:feedback_at]} (length: #{feedback_record[:length]}): #{feedback_record[:device_token]}"
end
server.start!

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
racoon-0.4.0 bin/racoond
racoon-0.3.2 bin/racoond
racoon-0.3.1 bin/racoond