]> Lady’s Gitweb - Gitweb/commitdiff
gitweb: Run in FastCGI mode if gitweb script has .fcgi extension
authorJakub Narebski <redacted>
Sat, 5 Jun 2010 21:11:18 +0000 (23:11 +0200)
committerLady <redacted>
Mon, 6 Apr 2026 04:50:40 +0000 (00:50 -0400)
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 <redacted>
Signed-off-by: Junio C Hamano <redacted>
gitweb.perl

index 8b61a75718e8937052e74d83ba4b1f647d689ff732a12d8db12c428bcc6bec8c..19b5a442dc60be1e56072ed14546d9dadddb94ad7e4204be3e60ea2f33310440 100755 (executable)
@@ -1054,19 +1054,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; };
This page took 0.216261 seconds and 4 git commands to generate.