help option now has a short option
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Script / Server.pm
CommitLineData
0ba6e8aa 1package Catalyst::Script::Server;
2
53b08cf9 3BEGIN {
4 $ENV{CATALYST_ENGINE} ||= 'HTTP';
5 $ENV{CATALYST_SCRIPT_GEN} = 31;
6 require Catalyst::Engine::HTTP;
7}
5b923b0b 8
a3ca4468 9use FindBin qw/$Bin/;
10use lib "$Bin/../lib";
11use Pod::Usage;
12use Moose;
13use Catalyst::Engine::HTTP;
14use namespace::clean -except => [ qw(meta) ];
15
16with 'MooseX::Getopt';
17
e46bf32c 18has help => (
19 traits => [qw(Getopt)],
20 isa => 'Bool',
21 is => 'ro',
22 required => 0,
23 default => 0,
24 cmd_aliases => 'h',
25);
26
27has host => ( isa => 'Str', is => 'ro', required => 0, default => "localhost" );
615fee7c 28has fork => ( isa => 'Bool', is => 'ro', required => 0 );
e46bf32c 29has listen => ( isa => 'Int', is => 'ro', required => 0, default => "3000" );
615fee7c 30has pidfile => ( isa => 'Str', is => 'ro', required => 0 );
e46bf32c 31has keepalive => ( isa => 'Bool', is => 'ro', required => 0, default => 0 );
615fee7c 32has background => ( isa => 'Bool', is => 'ro', required => 0 );
33has app => ( isa => 'Str', is => 'ro', required => 1 );
34has restart => ( isa => 'Bool', is => 'ro', required => 0 );
35has restart_delay => ( isa => 'Int', is => 'ro', required => 0 );
36has restart_regex => ( isa => 'Str', is => 'ro', required => 0 );
37has follow_symlinks => ( isa => 'Bool', is => 'ro', required => 0 );
a3ca4468 38
39my @argv = @ARGV;
40
41sub run {
42 my $self = shift;
43
44 pod2usage() if $self->help;
45 my $app = $self->app;
46 Class::MOP::load_class($app);
47 $app->run(
48 $self->listen, $self->host,
49 {
50 'fork' => $self->fork,
51 keepalive => $self->keepalive,
52 background => $self->background,
53 pidfile => $self->pidfile,
615fee7c 54 keepalive => $self->keepalive,
55 restart => $self->restart,
56 restart_delay => $self->restart_delay,
57 restart_regex => qr/$self->restart_regex/,
c1c59374 58# FIXME restart_directory => $self->restart_directory,
615fee7c 59 follow_symlinks => $self->follow_symlinks,
a3ca4468 60 }
61 );
62
63}
5b923b0b 64
5b923b0b 65
0ba6e8aa 661;
e46bf32c 67
68=head1 NAME
69
70[% appprefix %]_server.pl - Catalyst Testserver
71
72=head1 SYNOPSIS
73
74[% appprefix %]_server.pl [options]
75
76 Options:
77 -d -debug force debug mode
78 -f -fork handle each request in a new process
79 (defaults to false)
80 -? -help display this help and exits
81 -host host (defaults to all)
82 -p -port port (defaults to 3000)
83 -k -keepalive enable keep-alive connections
84 -r -restart restart when files get modified
85 (defaults to false)
86 -rd -restartdelay delay between file checks
87 (ignored if you have Linux::Inotify2 installed)
88 -rr -restartregex regex match files that trigger
89 a restart when modified
90 (defaults to '\.yml$|\.yaml$|\.conf|\.pm$')
91 -restartdirectory the directory to search for
92 modified files, can be set mulitple times
93 (defaults to '[SCRIPT_DIR]/..')
94 -follow_symlinks follow symlinks in search directories
95 (defaults to false. this is a no-op on Win32)
96 -background run the process in the background
97 -pidfile specify filename for pid file
98
99 See also:
100 perldoc Catalyst::Manual
101 perldoc Catalyst::Manual::Intro
102
103=head1 DESCRIPTION
104
105Run a Catalyst Testserver for this application.
106
107=head1 AUTHORS
108
109Catalyst Contributors, see Catalyst.pm
110
111=head1 COPYRIGHT
112
113This library is free software. You can redistribute it and/or modify
114it under the same terms as Perl itself.
115
116=cut