Subject: Re: git instaweb + webrick does not work

From: Jakub Narebski <[email-masked]>
Date: Tue, 03 Aug 2010 15:07:48 -0700 (PDT)

Michael Dippery <[email-masked]> writes:

> I'm trying to use `git instaweb` with Ruby's webrick (which I have
> installed) on Mac OS X, but every time I fire up it up via `git
> instaweb --httpd=webrick`, I get the following error:
> 
> "webrick not found. Install webrick or use --httpd to specify
> another httpd daemon."
> 
> I _do_ have webrick. Asking around a bit, I was told the the problem
> may have been introduced in commit be5347b. Is this so? If not, any
> other ideas on what may be causing the problem?
> 
> I'm using Git v1.7.2.1 on Mac OS X 10.6.

To be more exact commit be5347b (git-instaweb: Put httpd logs in a
"$httpd_only" subdirectory, 2010-05-28) by Pavan Kumar Sunkara added
resolve_full_httpd before running *_config (webrick_config in this
case).  But resolve_full_httpd() beside setting $httpd_only needed
later for functionality provided by this commit, does also setting
$full_httpd and checking if given web server can be run.

The `webrick' support in git-instaweb is peculiar in that webrick_conf
creates 'webrick' shell script in "$GIT_DIR/gitweb/".  The code that
checks if web server is available in resolve_full_httpd() searches
also in "$GIT_DIR/gitweb/"... but it is run before webrick_conf
function in git-instaweb has a chance to generate 'webrick' script.

The solution would be to either split resolve_full_httpd() into one
function generating $httpd and $httpd_only, and second function
generating $full_httpd and checing for web server existence, or create
a separate check for 'webrick'.

-- 
Jakub Narebski
Poland
ShadeHawk on #git