X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FScript%2FFastCGI.pm;h=1b2a2e906c9963476a8eda6913e479fc6365b019;hb=07b56dc9ccb03a4fdd4cfe017cfc42359fe51529;hp=02ff9bd98e41d766381036535015d6daeb34e9cd;hpb=9c74923de2304b8c8f0a7a2faa0854ad9b4d3a92;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Script/FastCGI.pm b/lib/Catalyst/Script/FastCGI.pm index 02ff9bd..1b2a2e9 100644 --- a/lib/Catalyst/Script/FastCGI.pm +++ b/lib/Catalyst/Script/FastCGI.pm @@ -56,9 +56,8 @@ has nproc => ( documentation => 'Specify a number of child processes', ); -has title => ( +has proc_title => ( traits => [qw(Getopt)], - cmd_aliases => 't', isa => Str, is => 'ro', lazy => 1, @@ -73,19 +72,36 @@ sub _build_proc_title { sub BUILD { my ($self) = @_; - $self->title; + $self->proc_title; +} + +# Munge the 'listen' arg so that Plack::Handler::FCGI will accept it. +sub _listen { + my ($self) = @_; + + if (defined (my $listen = $self->listen)) { + return [ $listen ]; + } else { + return undef; + } } 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' ], - proc_title => [ 'title' ], - ]) - ); + + my $opts = Data::OptList::mkopt([ + qw/pidfile manager nproc proc_title/, + detach => [ 'daemon' ], + keep_stderr => [ 'keeperr' ], + listen => [ '_listen' ], + ]); + + my %args = map { $_->[0] => $self->${ \($_->[1] ? $_->[1]->[0] : $_->[0]) } } @$opts; + + # Plack::Handler::FCGI thinks manager => undef means "use no manager". + delete $args{'manager'} unless defined $args{'manager'}; + + return %args; } sub _application_args { @@ -98,7 +114,7 @@ sub _application_args { manager => $self->manager, detach => $self->daemon, keep_stderr => $self->keeperr, - title => $self->title, + proc_title => $self->proc_title, } ); } @@ -114,23 +130,23 @@ 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 - -t --title set the process title + -? --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 + --proc_title set the process title =head1 DESCRIPTION