From: Eric Wong Date: Thu, 5 Aug 2010 08:35:45 +0000 (+0000) Subject: instaweb: minimize moving parts for WEBrick X-Git-Tag: v1.7.3-rc0~93^2~1 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=f46e130439a57ce44708971183adab7e58512b34;p=git.git instaweb: minimize moving parts for WEBrick Since there are WEBrick configuration settings (including the upcoming AccessLog support) that cannot be represented in YAML and require Ruby anyways, the YAML config file is an unnecessary layer of complexity. Additionally, the shell script wrapper to start WEBrick is unecessary since our generated Ruby script can be made executable in the same manner with /usr/bin/env. Signed-off-by: Eric Wong --- diff --git a/git-instaweb.sh b/git-instaweb.sh index 5d4ddc8f5..e69fb74fe 100755 --- a/git-instaweb.sh +++ b/git-instaweb.sh @@ -58,9 +58,9 @@ resolve_full_httpd () { return ;; *webrick*) - # server is started by running via generated webrick.sh in + # server is started by running via generated webrick.rb in # $fqgitdir/gitweb - full_httpd="$fqgitdir/gitweb/webrick.sh" + full_httpd="$fqgitdir/gitweb/webrick.rb" httpd_only="${httpd%% *}" # cut on first space return ;; @@ -214,39 +214,28 @@ EOF # portable way to run ruby, which could be installed anywhere, really. # generate a standalone server script in $fqgitdir/gitweb. cat >"$fqgitdir/gitweb/$httpd.rb" < $port, + :DocumentRoot => "$root", + :DirectoryIndex => ["gitweb.cgi"], + :CGIInterpreter => "$wrapper", + :StartCallback => lambda do + File.open("$fqgitdir/pid", "w") { |f| f.puts Process.pid } + end, + :ServerType => WEBrick::Daemon, +} +options[:BindAddress] = '127.0.0.1' if "$local" == "true" server = WEBrick::HTTPServer.new(options) ['INT', 'TERM'].each do |signal| trap(signal) {server.shutdown} end server.start EOF - # generate a shell script to invoke the above ruby script, - # which assumes _ruby_ is in the user's $PATH. that's _one_ - # portable way to run ruby, which could be installed anywhere, - # really. - cat >"$fqgitdir/gitweb/$httpd.sh" <"$conf" <> "$conf" + chmod +x "$fqgitdir/gitweb/$httpd.rb" + # configuration is embedded in server script file, webrick.rb + rm -f "$conf" } lighttpd_conf () {