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