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=ed8aef0b52f323e12c4d78c988c23d69ad973791;hpb=383c5be6711391bd114674e2dfb0b9e84a100a38;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Script/Server.pm b/lib/Catalyst/Script/Server.pm index ed8aef0..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,13 +277,14 @@ sub _application_args { pidfile keepalive follow_symlinks + port + host /, }, ); -} +}; __PACKAGE__->meta->make_immutable; - 1; =head1 NAME