]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - bin/rbot
fix: restart logger thread after fork
[user/henk/code/ruby/rbot.git] / bin / rbot
index 700fe08c407bd711e59be04586397bb61b64667b..8c65f42cadaa63f7ec7718392232181762f46e38 100755 (executable)
--- a/bin/rbot
+++ b/bin/rbot
@@ -61,17 +61,13 @@ opts = GetoptLong.new(
   ["--version", "-v", GetoptLong::NO_ARGUMENT]
 )
 
-$debug = $DEBUG
 $daemonize = false
 
 opts.each {|opt, arg|
-  $debug = true if(opt == "--debug")
   $daemonize = true if(opt == "--background")
   $opts[opt.sub(/^-+/, "")] = arg
 }
 
-$cl_loglevel = $opts["loglevel"].to_i if $opts["loglevel"]
-
 if ($opts["trace"])
   set_trace_func proc { |event, file, line, id, binding, classname|
     if classname.to_s == $opts["trace"]
@@ -89,6 +85,8 @@ if File.directory? "#{defaultlib}/rbot"
 end
 
 begin
+  Encoding.default_internal = Encoding::UTF_8
+  Encoding.default_external = Encoding::UTF_8
   require 'rbot/ircbot'
 rescue LoadError => e
   puts "Error: couldn't find the rbot/ircbot module (or one of its dependencies)\n"
@@ -113,6 +111,13 @@ if ($opts["help"])
   exit 0
 end
 
+# setup logger based on command line arguments
+loglevel = $opts['loglevel'] ? $opts['loglevel'].to_i : nil
+loglevel = $opts['debug'] ? 0 : loglevel
+if loglevel
+  Irc::Bot::LoggerManager.instance.set_level(loglevel)
+end
+
 if(bot = Irc::Bot.new(ARGV.shift, :argv => orig_opts))
   # just run the bot
   bot.mainloop