Fix the fcgi script tests.
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Script / FastCGI.pm
index ba7f096..47f1e1b 100644 (file)
@@ -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