From: Jakub Narebski <jnareb@gmail.com>
To: git@vger.kernel.org
Cc: Sam Vilain <sam.vilain@catalyst.net.nz>,
Jakub Narebski <jnareb@gmail.com>
Subject: [PATCH/RFC] gitweb: Run in FastCGI mode if gitweb script has .fcgi extension
Date: Sat, 5 Jun 2010 23:11:18 +0200 [thread overview]
Message-ID: <1275772278-14709-1-git-send-email-jnareb@gmail.com> (raw)
If the name of the script ($SCRIPT_NAME or $SCRIPT_FILENAME CGI
environment variable, or __FILE__ literal) ends with '.fcgi'
extension, run gitweb in FastCGI mode, as if it was run with
'--fastcgi' / '--fcgi' option.
This is intended for easy deploying gitweb using FastCGI
interface.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
This patch is based on a0446e7 commit (gitweb: Add support for
FastCGI, using CGI::Fast, 2010-05-07), currently in 'next'
(from 'jn/gitweb-fastcgi' branch).
I have not actually tested that it runs as FastCGI script.
Now to run gitweb using FastCGI, all one has to do is to rename it
from gitweb.cgi to gitweb.fcgi. And of course configure web server
to run it using FastCGI interface.
gitweb/gitweb.perl | 21 +++++++++++++--------
1 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index c42c16f..47ef993 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -1056,19 +1056,24 @@ our $is_last_request = sub { 1 };
our ($pre_dispatch_hook, $post_dispatch_hook, $pre_listen_hook);
our $CGI = 'CGI';
our $cgi;
+sub configure_as_fcgi {
+ require CGI::Fast;
+ our $CGI = 'CGI::Fast';
+
+ my $request_number = 0;
+ # let each child service 100 requests
+ our $is_last_request = sub { ++$request_number > 100 };
+}
sub evaluate_argv {
+ my $script_name = $ENV{'SCRIPT_NAME'} || $ENV{'SCRIPT_FILENAME'} || __FILE__;
+ configure_as_fcgi()
+ if $script_name =~ /\.fcgi$/;
+
return unless (@ARGV);
require Getopt::Long;
Getopt::Long::GetOptions(
- 'fastcgi|fcgi|f' => sub {
- require CGI::Fast;
- our $CGI = 'CGI::Fast';
-
- my $request_number = 0;
- # let each child service 100 requests
- our $is_last_request = sub { ++$request_number > 100 };
- },
+ 'fastcgi|fcgi|f' => \&configure_as_fcgi,
'nproc|n=i' => sub {
my ($arg, $val) = @_;
return unless eval { require FCGI::ProcManager; 1; };
--
1.7.0.1
next reply other threads:[~2010-06-05 21:09 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-05 21:11 Jakub Narebski [this message]
2010-06-05 21:12 ` [PATCH/RFC] gitweb: Run in FastCGI mode if gitweb script has .fcgi extension Ævar Arnfjörð Bjarmason
2010-06-06 20:09 ` [PATCH/RFC v2] " Jakub Narebski
2010-06-06 20:18 ` Pavan Kumar Sunkara
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1275772278-14709-1-git-send-email-jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.org \
--cc=sam.vilain@catalyst.net.nz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).