Pass script options into auto loader
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Engine.pm
index 6919625..a2cc178 100644 (file)
@@ -791,8 +791,14 @@ sub run {
     # like Gitalist's --git_dir are possible to get from the app without stupid tricks.
     my $server = pop @args if (scalar @args && blessed $args[-1]);
     my $options = pop @args if (scalar @args && ref($args[-1]) eq 'HASH');
+    # Back compat hack for applications with old (non Catalyst::Script) scripts to work in FCGI.
+    if (scalar @args && !ref($args[0])) {
+        if (my $listen = shift @args) {
+            $options->{listen} ||= [$listen];
+        }
+    }
     if (! $server ) {
-        $server = Catalyst::EngineLoader->new(application_name => ref($self))->auto();
+        $server = Catalyst::EngineLoader->new(application_name => ref($self))->auto(%$options);
         # We're not being called from a script, so auto detect what backend to
         # run on.  This should never happen, as mod_perl never calls ->run,
         # instead the $app->handle method is called per request.