X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FScript%2FServer.pm;h=799ec430f6292138d3cb5dbd2061a0e9dcde8360;hb=df894348b6f8e0bea1b3d0576aad28027ee930df;hp=1f4f80e26656a3378c6637833d506ec8b60b1a47;hpb=f4de8c998c61fd442cb9590a3c052cf41b4c0d67;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Script/Server.pm b/lib/Catalyst/Script/Server.pm index 1f4f80e..799ec43 100644 --- a/lib/Catalyst/Script/Server.pm +++ b/lib/Catalyst/Script/Server.pm @@ -71,17 +71,20 @@ has pidfile => ( predicate => '_has_pidfile', ); +# Override MooseX::Daemonize +sub dont_close_all_files { 1 } sub BUILD { my $self = shift; if ($self->background) { # FIXME - This is evil. Should we just add MX::Daemonize to the deps? - try { Class::MOP::load_class('MooseX::Daemonize::Core') } + try { Class::MOP::load_class('MooseX::Daemonize::Core'); Class::MOP::load_class('POSIX') } catch { warn("MooseX::Daemonize is needed for the --background option\n"); exit 1; }; MooseX::Daemonize::Core->meta->apply($self); + POSIX::close($_) foreach (0..2); } } @@ -260,13 +263,13 @@ sub _plack_loader_args { ); } -sub _application_args { - my ($self) = shift; +around _application_args => sub { + my ($orig, $self) = @_; return ( $self->port, $self->host, { - argv => $self->ARGV, + %{ $self->$orig }, map { $_ => $self->$_ } qw/ fork keepalive @@ -274,10 +277,12 @@ sub _application_args { pidfile keepalive follow_symlinks + port + host /, }, ); -} +}; __PACKAGE__->meta->make_immutable; 1;