X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FHelper.pm;h=b9b2f5df7ec3e37206e08040c272cc91384b95f8;hb=cb8d90e53d5eb2f3f985ca9f53d072797ab016af;hp=04af836eeea08b90ed4b8005fce7714aa82e0ade;hpb=b5524568632c98c00e7f3a21e0c74b93fd5b8863;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Helper.pm b/lib/Catalyst/Helper.pm index 04af836..b9b2f5d 100644 --- a/lib/Catalyst/Helper.pm +++ b/lib/Catalyst/Helper.pm @@ -38,6 +38,8 @@ sub mk_app { $self->_mk_readme; $self->_mk_changes; $self->_mk_apptest; + $self->_mk_cgi; + $self->_mk_fcgi; $self->_mk_server; $self->_mk_test; $self->_mk_create; @@ -316,6 +318,117 @@ all_pod_coverage_ok(); EOF } +sub _mk_cgi { + my $self = shift; + my $name = $self->{name}; + my $script = $self->{script}; + $self->mk_file( "$script\/nph-cgi.pl", <<"EOF"); +$Config{startperl} -w + +BEGIN { + \$ENV{CATALYST_ENGINE} = 'CGI'; + \$ENV{CATALYST_TEST} = 1; +} + +use strict; +use FindBin; +use lib "\$FindBin::Bin/../lib"; +use $name; + +$name->run; + +1; +__END__ + +=head1 NAME + +nph-cgi - Catalyst CGI + +=head1 SYNOPSIS + +See L + +=head1 DESCRIPTION + +Run a Catalyst application as cgi. + +=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/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}; @@ -323,12 +436,17 @@ sub _mk_server { $self->mk_file( "$script\/server.pl", <<"EOF"); $Config{startperl} -w +BEGIN { + \$ENV{CATALYST_ENGINE} = 'Server'; + \$ENV{CATALYST_TEST} = 1; +} + use strict; use Getopt::Long; use Pod::Usage; use FindBin; use lib "\$FindBin::Bin/../lib"; -use Catalyst::Test '$name'; +use $name; my \$help = 0; my \$port = 3000; @@ -337,7 +455,7 @@ GetOptions( 'help|?' => \\\$help, 'port=s' => \\\$port ); pod2usage(1) if \$help; -Catalyst::Test::server(\$port); +$name->run(\$port); 1; __END__