Merge branch 'master' into psgi
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Script / Server.pm
index 8226af4..1ec97a3 100644 (file)
@@ -1,19 +1,13 @@
 package Catalyst::Script::Server;
-
-BEGIN {
-    $ENV{CATALYST_ENGINE} ||= 'HTTP';
-    require Catalyst::Engine::HTTP;
-}
-
 use Moose;
 use MooseX::Types::Common::Numeric qw/PositiveInt/;
 use MooseX::Types::Moose qw/ArrayRef Str Bool Int RegexpRef/;
 use Catalyst::Utils;
 use namespace::autoclean;
 
-with 'Catalyst::ScriptRole';
+sub _plack_engine_name { 'Standalone' }
 
-__PACKAGE__->meta->get_attribute('help')->cmd_aliases('?');
+with 'Catalyst::ScriptRole';
 
 has debug => (
     traits        => [qw(Getopt)],
@@ -47,8 +41,7 @@ has port => (
     isa           => PositiveInt,
     is            => 'ro',
     default       => sub {
-        my $self = shift;
-        $ENV{ Catalyst::Utils::class2env($self->application_name . '_PORT')}||3000
+        Catalyst::Utils::env_value(shift->application_name, 'port') || 3000
     },
     documentation => 'Specify a different listening port (to the default port 3000)',
 );
@@ -84,7 +77,9 @@ has restart => (
     cmd_aliases   => 'r',
     isa           => Bool,
     is            => 'ro',
-    default       => 0,
+    default       => sub {
+        Catalyst::Utils::env_value(shift->application_name, 'reload') || 0;
+    },
     documentation => 'use Catalyst::Restarter to detect code changes and restart the application',
 );
 
@@ -183,12 +178,22 @@ sub run {
 
 }
 
+sub _plack_loader_args {
+    my ($self) = shift;
+    return (
+        port => $self->port,
+        host => $self->host,
+        keepalive => $self->keepalive ? 100 : 1,
+    );
+}
+
 sub _application_args {
     my ($self) = shift;
     return (
         $self->port,
         $self->host,
         {
+           argv => $self->ARGV,
            map { $_ => $self->$_ } qw/
                 fork
                 keepalive
@@ -229,7 +234,7 @@ Catalyst::Script::Server - Catalyst test server
                       a restart when modified
                       (defaults to '\.yml$|\.yaml$|\.conf|\.pm$')
    --rdir --restart_directory  the directory to search for
-                      modified files, can be set mulitple times
+                      modified files, can be set multiple times
                       (defaults to '[SCRIPT_DIR]/..')
    --sym  --follow_symlinks   follow symlinks in search directories
                       (defaults to false. this is a no-op on Win32)