bin/rapnd in rapnd-0.1.5 vs bin/rapnd in rapnd-0.1.6

- old
+ new

@@ -5,10 +5,12 @@ require 'optparse' require 'rapnd' require 'daemons' +command = ARGV.shift + options = {} OptionParser.new do |opts| opts.banner = "Usage: rapnd [options]" opts.on("--cert=MANDATORY", "Location of the cert pem file") do |cert| @@ -20,47 +22,56 @@ end opts.on("--redis_host=OPTIONAL", "Redis hostname") do |host| options[:redis_host] = host end - + opts.on("--redis_port=OPTIONAL", "Redis port") do |port| options[:redis_port] = port end - + opts.on("--environment=OPTIONAL", "Specify sandbox or production") do |env| if env == 'production' options[:host] = 'gateway.push.apple.com' else options[:host] = 'gateway.sandbox.push.apple.com' end end - + opts.on("--queue=OPTIONAL", "Name of the redis queue") do |queue| options[:queue] = queue end - + opts.on("--foreground", "Run in the foreground") do |fore| options[:foreground] = true end - + opts.on("--dir=OPTIONAL", "Directory to start in") do |dir| options[:dir] = dir end - + opts.on('--help', 'Show help') do |help| puts opts end end.parse! -unless options[:foreground] - Daemons.daemonize( - :app_name => options[:queue], - :dir_mode => :normal, - :dir => "#{options[:dir]}/tmp", - :log_dir => "#{options[:dir]}/log", - :backtrace => true, - :log_output => true - ) -end +case command +when 'start' + unless options[:foreground] + Daemons.daemonize( + :app_name => options[:queue], + :dir_mode => :normal, + :dir => "#{options[:dir]}/tmp", + :log_dir => "#{options[:dir]}/log", + :backtrace => true, + :log_output => true + ) + end -Rapnd::Daemon.new(options).run! + Rapnd::Daemon.new(options).run! +when 'stop' + unless options[:foreground] + file = Daemons::PidFile.find_files("#{options[:dir]}/tmp", options[:queue]).first + pid = File.open(file) {|h| h.read}.to_i + `kill -9 #{pid}` + end +end \ No newline at end of file