X-Git-Url: http://git.sourceforge.jp/view?p=shogi-server%2Fshogi-server.git;a=blobdiff_plain;f=shogi-server;h=07e42a63adbac4653eff2ffc8dd48c614984ff08;hp=1f5a9f54018b8b82a031fa7da7ef2e788cb1753f;hb=6150d6fd590bf23c1a2e46be19820de0d3ed5857;hpb=a21a12b4c47b3042be1be4927a68e1aee2bca781 diff --git a/shogi-server b/shogi-server index 1f5a9f5..07e42a6 100755 --- a/shogi-server +++ b/shogi-server @@ -18,6 +18,7 @@ ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +TOP_DIR = File.expand_path(File.dirname(__FILE__)) $:.unshift File.dirname(__FILE__) require 'shogi_server' @@ -57,6 +58,9 @@ OPTIONS --player-log-dir dir log network messages for each player. Log files will be put in the dir. + --floodgate_history + file name to record Floodgate game history + default: './floodgate_history.yaml' LICENSE GPL versoin 2 or later @@ -220,8 +224,6 @@ end def main - setup_watchdog_for_giant_lock - $options = parse_command_line if (ARGV.length != 2) usage @@ -235,6 +237,11 @@ def main usage exit 3 end + if $options["pid-file"] + $options["pid-file"] = File.expand_path($options["pid-file"]) + end + $options["floodgate-history"] ||= File.join(File.dirname(__FILE__), "floodgate_history.yaml") + $options["floodgate-history"] = File.expand_path($options["floodgate-history"]) LEAGUE.event = ARGV.shift port = ARGV.shift @@ -248,8 +255,7 @@ def main log_file = dir ? File.join(dir, "shogi-server.log") : STDOUT $logger = setup_logger(log_file) - LEAGUE.dir = dir || File.dirname(__FILE__) - LEAGUE.setup_players_database + LEAGUE.dir = dir || TOP_DIR config = {} config[:Port] = port @@ -257,16 +263,20 @@ def main config[:Logger] = $logger fg_thread = nil + config[:StartCallback] = Proc.new do + srand if $options["pid-file"] write_pid_file($options["pid-file"]) end + setup_watchdog_for_giant_lock + LEAGUE.setup_players_database fg_thread = setup_floodgate end config[:StopCallback] = Proc.new do if $options["pid-file"] - FileUtils.rm(pid_file, :force => true) + FileUtils.rm($options["pid-file"], :force => true) end end @@ -316,7 +326,7 @@ if ($0 == __FILE__) Thread.abort_on_exception = $DEBUG ? true : false begin - LEAGUE = ShogiServer::League::new + LEAGUE = ShogiServer::League.new(TOP_DIR) main rescue Exception => ex log_error("main: #{ex.class}: #{ex.message}\n\t#{ex.backtrace[0]}")