X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FScript%2FFastCGI.pm;h=47f1e1b1c6a770c1742a24465288a8087451562a;hp=ba7f09613419013afa5d842c689b66ddad5ca80a;hb=6640e1668543203e3347be8430ff8a80d425c763;hpb=0e4038c63189b155c40e50c9d8c26f618e1f9814 diff --git a/lib/Catalyst/Script/FastCGI.pm b/lib/Catalyst/Script/FastCGI.pm index ba7f096..47f1e1b 100644 --- a/lib/Catalyst/Script/FastCGI.pm +++ b/lib/Catalyst/Script/FastCGI.pm @@ -1,69 +1,71 @@ package Catalyst::Script::FastCGI; - -BEGIN { $ENV{CATALYST_ENGINE} ||= 'FastCGI' } use Moose; use MooseX::Types::Moose qw/Str Bool Int/; +use Data::OptList; use namespace::autoclean; -with 'Catalyst::ScriptRole'; +sub _plack_engine_name { 'FCGI' } -__PACKAGE__->meta->get_attribute('help')->cmd_aliases('h'); +with 'Catalyst::ScriptRole'; has listen => ( - traits => [qw(Getopt)], - cmd_aliases => 'l', - isa => Str, - is => 'ro', + traits => [qw(Getopt)], + cmd_aliases => 'l', + isa => Str, + is => 'ro', documentation => 'Specify a listening port/socket', ); has pidfile => ( - traits => [qw(Getopt)], - cmd_aliases => 'pid', - isa => Str, - is => 'ro', + 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 => 'd', + 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', + 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', + 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', + traits => [qw(Getopt)], + cmd_aliases => 'n', + isa => Int, + is => 'ro', documentation => 'Specify a number of child processes', ); -has detach => ( - traits => [qw(Getopt)], - cmd_aliases => 'det', - isa => Bool, - is => 'ro', - documentation => 'Detach this FastCGI process', -); +sub _plack_loader_args { + my ($self) = shift; + return ( + map { $_->[0] => $self->${ \($_->[1] ? $_->[1]->[0] : $_->[0]) } } + Data::OptList::mkopt([ + qw/pidfile listen manager nproc keep_stderr/, + detach => [ 'daemon'], + ]) + ); +} sub _application_args { my ($self) = shift; @@ -73,7 +75,7 @@ sub _application_args { nproc => $self->nproc, pidfile => $self->pidfile, manager => $self->manager, - detach => $self->detach, + detach => $self->daemon, keep_stderr => $self->keeperr, } ); @@ -90,22 +92,22 @@ Catalyst::Script::FastCGI - The FastCGI Catalyst Script 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 + -? --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