From: Sebastian Riedel Date: Tue, 22 Mar 2005 21:46:23 +0000 (+0000) Subject: added fcgi.pl X-Git-Tag: 5.7099_04~1735 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=cb8d90e53d5eb2f3f985ca9f53d072797ab016af added fcgi.pl --- diff --git a/Changes b/Changes index 58102b1..3c2ac1b 100644 --- a/Changes +++ b/Changes @@ -4,6 +4,7 @@ This file documents the revision history for Perl extension Catalyst. - documented the log() accessor method in Catalyst (Andrew Ford) - added optional arguments to Catalyst::Log methods (Andrew Ford) - removed cgi-server.pl + - added fcgi.pl 4.32 Tue Mar 22 02:10:00 2005 - made a damn typo *AAAAAAAAAAAAAAHHHH!!!* diff --git a/lib/Catalyst/Helper.pm b/lib/Catalyst/Helper.pm index 75bcb88..b9b2f5d 100644 --- a/lib/Catalyst/Helper.pm +++ b/lib/Catalyst/Helper.pm @@ -39,6 +39,7 @@ sub mk_app { $self->_mk_changes; $self->_mk_apptest; $self->_mk_cgi; + $self->_mk_fcgi; $self->_mk_server; $self->_mk_test; $self->_mk_create; @@ -367,6 +368,67 @@ EOF chmod 0700, "$script/nph-cgi.pl"; } +sub _mk_fcgi { + my $self = shift; + my $name = $self->{name}; + my $script = $self->{script}; + $self->mk_file( "$script\/fcgi.pl", <<"EOF"); +$Config{startperl} -w + +BEGIN { + \$ENV{CATALYST_ENGINE} = 'CGI'; + \$ENV{CATALYST_TEST} = 1; +} + +use strict; +use FindBin; +use lib "\$FindBin::Bin/../lib"; +use FCGI; +use $name; + +my \$request = FCGI::Request(); +while ( \$request->Accept() >= 0 ) { + my \$output; + { + local(*STDOUT); + open( STDOUT, '>', \\\$output ); + $name->run; + } + \$output =~ s!^HTTP/\\d+.\\d+ \\d\\d\\d.*?\\n!!s; + print \$output; +} + +1; +__END__ + +=head1 NAME + +fcgi - Catalyst FCGI + +=head1 SYNOPSIS + +See L + +=head1 DESCRIPTION + +Run a Catalyst application as fcgi. + +=head1 AUTHOR + +Sebastian Riedel, C + +=head1 COPYRIGHT + +Copyright 2004 Sebastian Riedel. All rights reserved. + +This library is free software. You can redistribute it and/or modify it under +the same terms as perl itself. + +=cut +EOF + chmod 0700, "$script/fcgi.pl"; +} + sub _mk_server { my $self = shift; my $name = $self->{name};