Allow running MailCatcher as a daemon.

This commit is contained in:
Samuel Cochran 2011-05-27 12:39:03 +08:00
parent 8d6c237d62
commit f8897680ce
1 changed files with 16 additions and 1 deletions

View File

@ -1,4 +1,5 @@
require 'active_support/all'
require 'daemons'
require 'eventmachine'
require 'thin'
@ -16,6 +17,7 @@ module MailCatcher
:http_ip => '127.0.0.1',
:http_port => '1080',
:verbose => false,
:daemon => false,
}
def self.parse! arguments=ARGV, defaults=@@defaults
@ -43,6 +45,10 @@ module MailCatcher
options[:http_port] = port
end
parser.on('-d', '--daemon', 'Run as a daemon') do
options[:daemon] = true
end
parser.on('-v', '--verbose', 'Be more verbose') do
options[:verbose] = true
end
@ -66,9 +72,18 @@ module MailCatcher
puts "==> http://#{options[:http_ip]}:#{options[:http_port]}"
Thin::Logging.silent = true
EventMachine.run do
EventMachine.start_server options[:smtp_ip], options[:smtp_port], Smtp
Thin::Server.start options[:http_ip], options[:http_port], Web
if options[:daemon]
# Make sure the servers start before daemonizing.
EventMachine.next_tick do
Daemons.daemonize :app_name => "mailcatcher"
end
end
end
end
end