From d355aca3f2d913e6fad9913064f217b45afb8061 Mon Sep 17 00:00:00 2001 From: elijah Date: Mon, 5 Aug 2013 02:07:59 -0700 Subject: added 'foreground' start option (start, but don't daemonize) --- lib/nickserver/daemon.rb | 26 ++++++++++++++++++-------- lib/nickserver/server.rb | 3 +++ test/test_helper.rb | 2 ++ 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/lib/nickserver/daemon.rb b/lib/nickserver/daemon.rb index 651c6ce..c316b0a 100644 --- a/lib/nickserver/daemon.rb +++ b/lib/nickserver/daemon.rb @@ -146,7 +146,7 @@ module Nickserver puts msg puts puts "Usage: #{@name} [OPTION] COMMAND" - puts "COMMAND is one of: start, stop, restart, status, version" + puts "COMMAND is one of: start, stop, restart, status, version, foreground" puts "OPTION is one of: --verbose" puts exit 1 @@ -201,13 +201,14 @@ module Nickserver def parse_options loop do case ARGV[0] - when 'start' then ARGV.shift; @command = :start - when 'stop' then ARGV.shift; @command = :stop - when 'restart' then ARGV.shift; @command = :restart - when 'status' then ARGV.shift; @command = :status - when 'version' then ARGV.shift; @command = :version - when '--verbose' then ARGV.shift; Config.versbose = true - when /^-/ then override_default_config(ARGV.shift, ARGV.shift) + when 'start' then ARGV.shift; @command = :start + when 'stop' then ARGV.shift; @command = :stop + when 'restart' then ARGV.shift; @command = :restart + when 'status' then ARGV.shift; @command = :status + when 'version' then ARGV.shift; @command = :version + when 'foreground' then ARGV.shift; @command = :foreground + when '--verbose' then ARGV.shift; Config.versbose = true + when /^-/ then override_default_config(ARGV.shift, ARGV.shift) else break end end @@ -243,6 +244,15 @@ module Nickserver end end + def command_foreground(&block) + trap("INT") do + puts "\nShutting down..." + exit(0) + end + yield + exit(0) + end + def command_stop if daemon_running? kill_pid diff --git a/lib/nickserver/server.rb b/lib/nickserver/server.rb index 6234fd6..8434759 100644 --- a/lib/nickserver/server.rb +++ b/lib/nickserver/server.rb @@ -22,6 +22,9 @@ module Nickserver def self.start(opts={}) Nickserver::Config.load options = {:host => '0.0.0.0', :port => Nickserver::Config.port.to_i}.merge(opts) + unless defined?(TESTING) + puts "Starting nickserver #{options[:host]}:#{options[:port]}" + end EM.start_server options[:host], options[:port], Nickserver::Server end diff --git a/test/test_helper.rb b/test/test_helper.rb index 187ee05..5d95cfd 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -5,6 +5,8 @@ require 'minitest/autorun' require 'webmock/minitest' require 'nickserver' +TESTING = true + class MiniTest::Unit::TestCase # Add global extensions to the test case class here -- cgit v1.2.3