X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FScript%2FFastCGI.pm;h=60b41338f1a3cf32708693ed6b7ff955cf0dfc09;hb=7388bcae74af60fe1d75dd5f1aea0af3f0605b2a;hp=0c1bffdebe50bd486c5871a188b0cd6970ddf937;hpb=0ba6e8aaafec7621c9444f470a849bd161f176e0;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Script/FastCGI.pm b/lib/Catalyst/Script/FastCGI.pm index 0c1bffd..60b4133 100644 --- a/lib/Catalyst/Script/FastCGI.pm +++ b/lib/Catalyst/Script/FastCGI.pm @@ -1,3 +1,113 @@ package Catalyst::Script::FastCGI; -1; +BEGIN { $ENV{CATALYST_ENGINE} ||= 'FastCGI' } +use Moose; +use MooseX::Types::Moose qw/Str Bool Int/; +use namespace::autoclean; + +with 'Catalyst::ScriptRole'; + +has listen => ( + traits => [qw(Getopt)], + cmd_aliases => 'l', + isa => Str, + is => 'ro', + documentation => 'Specify a listening port/socket', +); + +has pidfile => ( + traits => [qw(Getopt)], + cmd_aliases => [qw/pid p/], + isa => Str, + is => 'ro', + documentation => 'Specify a pidfile', +); + +has daemon => ( + traits => [qw(Getopt)], + isa => Bool, + is => 'ro', + cmd_aliases => [qw/d detach/], # Eww, detach is here as we fucked it up.. Deliberately not documented + documentation => 'Daemonize (go into the background)', +); + +has manager => ( + traits => [qw(Getopt)], + isa => Str, + is => 'ro', + cmd_aliases => 'M', + documentation => 'Use a different FastCGI process manager class', +); + +has keeperr => ( + traits => [qw(Getopt)], + cmd_aliases => 'e', + isa => Bool, + is => 'ro', + documentation => 'Log STDERR', +); + +has nproc => ( + traits => [qw(Getopt)], + cmd_aliases => 'n', + isa => Int, + is => 'ro', + documentation => 'Specify a number of child processes', +); + +sub _application_args { + my ($self) = shift; + return ( + $self->listen, + { + nproc => $self->nproc, + pidfile => $self->pidfile, + manager => $self->manager, + detach => $self->daemon, + keep_stderr => $self->keeperr, + } + ); +} + +__PACKAGE__->meta->make_immutable; + +=head1 NAME + +Catalyst::Script::FastCGI - The FastCGI Catalyst Script + +=head1 SYNOPSIS + + myapp_fastcgi.pl [options] + + Options: + -? --help display this help and exits + -l --listen Socket path to listen on + (defaults to standard input) + can be HOST:PORT, :PORT or a + filesystem path + -n --nproc specify number of processes to keep + to serve requests (defaults to 1, + requires -listen) + -p --pidfile specify filename for pid file + (requires -listen) + -d --daemon daemonize (requires -listen) + -M --manager specify alternate process manager + (FCGI::ProcManager sub-class) + or empty string to disable + -e --keeperr send error messages to STDOUT, not + to the webserver + +=head1 DESCRIPTION + +Run a Catalyst application as fastcgi. + +=head1 AUTHORS + +Catalyst Contributors, see Catalyst.pm + +=head1 COPYRIGHT + +This library is free software. You can redistribute it and/or modify it under +the same terms as Perl itself. + +=cut