X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FScript%2FServer.pm;h=5f3d508dde70f7c4e8dba4e746e6dfb01e87590b;hb=ee7aabd6613f44e30e6bbc335569711f17607a73;hp=859721a9345c76f31f8d033d9bf9f2b275cbd2e9;hpb=a3ca446895872bbfbb21f264f6ef95d266822cae;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Script/Server.pm b/lib/Catalyst/Script/Server.pm index 859721a..5f3d508 100644 --- a/lib/Catalyst/Script/Server.pm +++ b/lib/Catalyst/Script/Server.pm @@ -1,5 +1,10 @@ package Catalyst::Script::Server; +BEGIN { + $ENV{CATALYST_ENGINE} ||= 'HTTP'; + $ENV{CATALYST_SCRIPT_GEN} = 31; + require Catalyst::Engine::HTTP; +} use FindBin qw/$Bin/; use lib "$Bin/../lib"; @@ -10,14 +15,90 @@ use namespace::clean -except => [ qw(meta) ]; with 'MooseX::Getopt'; -has help => ( isa => 'Bool', is => 'ro', required => 0, default => sub { 0 } ); -has host => ( isa => 'Str', is => 'ro', required => 0 ); -has fork => ( isa => 'Bool', is => 'ro', required => 0 ); -has listen => ( isa => 'Int', is => 'ro', required => 0, default => sub{ 3000 } ); -has pidfile => ( isa => 'Str', is => 'ro', required => 0 ); -has keepalive => ( isa => 'Bool', is => 'ro', required => 0, default => sub { 0 } ); -has background => ( isa => 'Bool', is => 'ro', required => 0 ); -has app => ( isa => 'Str', is => 'ro', required => 1 ); +has help => ( + traits => [qw(Getopt)], + cmd_aliases => 'h', + isa => 'Bool', + is => 'ro', + required => 0, + default => 0, +); + +has host => ( + isa => 'Str', + is => 'ro', + required => 0, + default => "localhost" +); + +has fork => ( + traits => [qw(Getopt)], + cmd_aliases => 'f', + isa => 'Bool', + is => 'ro', + required => 0 +); + +has listen => ( + traits => [qw(Getopt)], + cmd_aliases => 'l', + isa => 'Int', + is => 'ro', + required => 0, + default => "3000" +); + +has pidfile => ( + traits => [qw(Getopt)], + cmd_aliases => 'pid', + isa => 'Str', + is => 'ro', + required => 0 +); + +has keepalive => ( + traits => [qw(Getopt)], + cmd_aliases => 'k', + isa => 'Bool', + is => 'ro', + required => 0, + default => 0 +); + +has background => ( + traits => [qw(Getopt)], + cmd_aliases => 'bg', + isa => 'Bool', + is => 'ro', + required => 0 +); + +has app => ( isa => 'Str', is => 'ro', required => 1 ); # THIS IS FUCKING RETARDED HALP PLZ +has restart => ( + traits => [qw(Getopt)], + cmd_aliases => 'r', + isa => 'Bool', + is => 'ro', + required => 0 +); + +has restart_delay => ( + traits => [qw(Getopt)], + cmd_aliases => 'rdel', + isa => 'Int', + is => 'ro', + required => 0 +); + +has restart_regex => ( + traits => [qw(Getopt)], + cmd_aliases => 'rxp', + isa => 'Str', + is => 'ro', + required => 0 +); + +has follow_symlinks => ( isa => 'Bool', is => 'ro', required => 0 ); my @argv = @ARGV; @@ -34,6 +115,12 @@ sub run { keepalive => $self->keepalive, background => $self->background, pidfile => $self->pidfile, + keepalive => $self->keepalive, + restart => $self->restart, + restart_delay => $self->restart_delay, + restart_regex => qr/$self->restart_regex/, +# FIXME restart_directory => $self->restart_directory, + follow_symlinks => $self->follow_symlinks, } ); @@ -41,3 +128,53 @@ sub run { 1; + +=head1 NAME + +[% appprefix %]_server.pl - Catalyst Testserver + +=head1 SYNOPSIS + +[% appprefix %]_server.pl [options] + + Options: + -d -debug force debug mode + -f -fork handle each request in a new process + (defaults to false) + -? -help display this help and exits + -host host (defaults to all) + -p -port port (defaults to 3000) + -k -keepalive enable keep-alive connections + -r -restart restart when files get modified + (defaults to false) + -rd -restartdelay delay between file checks + (ignored if you have Linux::Inotify2 installed) + -rr -restartregex regex match files that trigger + a restart when modified + (defaults to '\.yml$|\.yaml$|\.conf|\.pm$') + -restartdirectory the directory to search for + modified files, can be set mulitple times + (defaults to '[SCRIPT_DIR]/..') + -follow_symlinks follow symlinks in search directories + (defaults to false. this is a no-op on Win32) + -background run the process in the background + -pidfile specify filename for pid file + + See also: + perldoc Catalyst::Manual + perldoc Catalyst::Manual::Intro + +=head1 DESCRIPTION + +Run a Catalyst Testserver for this application. + +=head1 AUTHORS + +Catalyst Contributors, see Catalyst.pm + +=head1 COPYRIGHT + +This library is free software. You can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut