git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Jakub Narebski <jnareb@gmail.com>
Date
May 3, 2010, 22:25 UTC
Message-ID
<201005040025.53473.jnareb@gmail.com>
In-Reply-To
<20100503205624.GA3791@dcvr.yhbt.net>
On Mon, 3 May 2010, Eric Wong wrote:
Show 17 quoted lines
> Jakub Narebski <jnareb@gmail.com> 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"
> > +               ;;
[...]
Show 6 quoted lines
> > 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?
> 
> How about generating a small shell script that wraps plackup with the
> appropriate command-line options?
 RFC1925 - The Twelve Networking Truths                      1 April 1996
 
 2. The Fundamental Truths
         (6a) (corollary). It is always possible to add another level of
              indirection.
Just kidding...

More seriously, even currently in git-instaweb the 'httpd' variable contains web server invocation *with options* (see the case of apache2 and lighttpd, where resolve_full_httpd() ensures that 'httpd' ends with '-f' in such case. Using 'httpd' variable to be plackup-with-options naturally follows from such example.

Shell script (plackup.sh? gitweb-plackup.sh? instaweb-plackup.sh?) might be good idea, though. Note that we have to create gitweb.psgi (or app.psgi) CGI-to-PSGI wrapper (and to serve static files like gitweb.css) anyway by git-instaweb.

-- 
Jakub Narebski
Poland
Previous: Eric Wong
Message 3 of 3 in “Adding support for "plackup" and similar web server tools to git-instaweb”
  1. Jakub NarebskiMay 2, 2010
  2. Eric WongMay 3, 2010
  3. Jakub NarebskiMay 3, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.