Thread (3 messages) 3 messages, 2 authors, 2016-06-15

Re: Adding support for "plackup" and similar web server tools to git-instaweb

From: Eric Wong <hidden>
Date: 2016-06-15 22:48:44

Jakub Narebski [off-list ref] wrote:
The problem is that contrary to other web servers that can be used by
git-instaweb, (namely apache2, lighttpd, mongoose and webrick), the
'plackup' utility is configured using command line options, and not
via configuration file (well, one can use configuration file, but it
depends on the web server run from plackup).

How should one go with adding support for such httpd?  My first attempt
was putting full command line into 'httpd' in resolve_full_httpd():

+       *plackup*)
+               # plackup is configured via command-line options
+               bind=
+               test x"$local" = xtrue && bind="--host=127.0.0.1"
+               httpd="$httpd --port=$port $bind --app=$fqgitdir/gitweb/app.psgi"
+               ;;

The default standalone web server used by plackup (HTTP::Server::PSGI)
does not have daemon mode, so we would have to do the same as for moongose
web server: set to background and save pid in pidfile in git-instaweb.

OTOH plackup prints information / logs to STDERR, so it would have to be
silenced or redirected to error_log.  Also plackup does not need to have
"$fqgitdir/gitweb/httpd.conf" passed as last argument, but it needs to
be passed PSGI wrapper for CGI (I'd rather not use httpd.conf, but rather
app.psgi or gitweb.psgi for that).


So how should one go with adding support for new web server to git-instaweb,
that is configured via command line options (--port, --host) and not via
config file?
Hi Jakub,

How about generating a small shell script that wraps plackup with the
appropriate command-line options?

-- 
Eric Wong
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help