git instaweb on plack

git 1.7.2 (もしくは 1.7.4.4) から git instaweb で plackup を指定できるらしい。

Various "gitweb" enhancements and clean-ups, including syntax highlighting, "plackup" support for instaweb, .fcgi suffix to run it as FastCGI script, etc.

https://github.com/git/git/blob/master/Documentation/RelNotes/1.7.2.txt

"git instaweb" should work better again with plackup.

https://github.com/git/git/blob/master/Documentation/RelNotes/1.7.4.4.txt

Plack, CGI::Emulate::PSGI, CGI::Compile をいれて

git instaweb --httpd plackup

とすると、/usr/bin/perl が使われて CGI::Emulate::PSGI がないとか言われる。 そこで /usr/local/Cellar/git/1.8.1.3/libexec/git-core/git-instaweb の PERL を perlbrew の perl に書き直すと立ち上がった。

が、css が読み込まれていないため無惨なUIになる。libexec/git-core/git-instaweb の 557行目あたりを下記に変えれば読み込まれた。

# path => sub { m!\.(js|css|png)\$! && s!^/gitweb/!! },
path => sub { m!\.(js|css|png)\$! },