X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FHelper.pm;h=b9b2f5df7ec3e37206e08040c272cc91384b95f8;hb=8b4483b384270e6e6a7e78bfb2fbdbefdf7b72f4;hp=75bcb88bf463c74d57d3bd3926d4dfd6b8e0de70;hpb=a564a4be79ed0a4eb1dcba02a9ce19cef40b7452;p=catagits%2FCatalyst-Runtime.git 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};