bin/sekka-server in sekka-0.8.2 vs bin/sekka-server in sekka-0.8.3

- old
+ new

@@ -2,18 +2,21 @@ # -*- coding: utf-8 -*- require 'digest/md5' require 'fileutils' require 'rack' +require 'uri' require File.expand_path(File.dirname(__FILE__) + "/../lib/sekkaconfig") require File.expand_path(File.dirname(__FILE__) + "/../lib/sekka/sekkaversion") DICTDIR = File.expand_path( "~/.sekka-server" ) DICTURL = "http://sumibi.org/sekka/dict/" + SekkaVersion.version +PIDFILE = DICTDIR + "/pid" + TC_FILE = DICTDIR + "/SEKKA-JISYO.SMALL.tch" SUMFILE = DICTDIR + "/SEKKA-JISYO.SMALL.md5" TC_URL = DICTURL + "/SEKKA-JISYO.SMALL.tch" SUMURL = DICTURL + "/SEKKA-JISYO.SMALL.md5" @@ -28,10 +31,24 @@ if not File.directory?( DICTDIR ) Dir.mkdir( DICTDIR ) STDERR.printf( "Info: created directory [%s]\n", DICTDIR ) end + # sekka-server自身のpidを書きこむ(デーモン化したときの停止用) + open( PIDFILE, "w" ) {|f| + f.printf( "%d\n", Process.pid ) + } + + # 環境変数からHTTPプロキシサーバーの情報を取得する + proxyHost = nil + proxyPort = nil + if ENV.key?( 'http_proxy' ) + uri = URI.parse ENV[ 'http_proxy' ] + proxyPort = uri.port + proxyHost = uri.host + end + if not File.exist?( TC_FILE ) STDERR.printf( "Info: Downloading SEKKA-JISYO\n" ) # 辞書をダウンロードする cmd = sprintf( "curl -o %s %s", TC_FILE, TC_URL ) STDERR.printf( "Command : %s\n", cmd ) @@ -62,10 +79,10 @@ # 辞書ディレクトリに存在している辞書ファイルリストを作る list = TC_FILE_LIST.select { |name| File.exist?( name ) } # 設定項目をConfigオブジェクトに代入 - SekkaServer::Config.setup( list[0], MEMCACHED, 12929 ) + SekkaServer::Config.setup( list[0], MEMCACHED, 12929, proxyHost, proxyPort ) # サーバースクリプトのrootディレクトリへ移動 FileUtils.cd(File.dirname(__FILE__) + "/../") # サーバー起動