added MX::Types::Moose
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Script / FastCGI.pm
CommitLineData
0ba6e8aa 1package Catalyst::Script::FastCGI;
2
cc999ce2 3BEGIN { $ENV{CATALYST_ENGINE} ||= 'FastCGI' }
4use FindBin qw/$Bin/;
5use lib "$Bin/../lib";
6use Pod::Usage;
7use Moose;
4e45780e 8use MooseX::Types::Moose qw/Str Bool Int/;
2adf69c3 9use namespace::autoclean;
cc999ce2 10
11with 'MooseX::Getopt';
12
f4dc8d2f 13has help => (
14 traits => [qw(Getopt)],
15 cmd_aliases => 'h',
16 isa => 'Bool',
17 is => 'ro',
18 documentation => qq{ display this help and exits },
19);
20
21has listen => (
22 traits => [qw(Getopt)],
23 cmd_aliases => 'l',
24 isa => 'Int',
25 is => 'ro',
26 default => "3000",
27 documentation => qq{ specify a different listening port }
28);
29
30has pidfile => (
31 traits => [qw(Getopt)],
32 cmd_aliases => 'pid',
33 isa => 'Str',
34 is => 'ro',
35 documentation => qq{ specify a pidfile }
36);
37
38has daemon => (
39 isa => 'Bool',
40 is => 'ro',
41 traits => [qw(Getopt)],
42 cmd_aliases => 'd',
43 documentation => qq{ daemonize }
44);
45
46has manager => (
47 isa => 'Str',
48 is => 'ro',
49 traits => [qw(Getopt)],
50 cmd_aliases => 'm',
51 documentation => qq{ use a different FastCGI manager }
52);
53
54has keep_stderr => (
55 traits => [qw(Getopt)],
56 cmd_aliases => 'std',
57 isa => 'Bool',
58 is => 'ro',
59 documentation => qq{ log STDERR }
60);
61
62has nproc => (
63 traits => [qw(Getopt)],
64 cmd_aliases => 'np',
65 isa => 'Int',
66 is => 'ro',
67 documentation => qq{ specify an nproc }
68);
69
70has detach => (
71 traits => [qw(Getopt)],
72 cmd_aliases => 'det',
73 isa => 'Bool',
74 is => 'ro',
75 documentation => qq{ detach this FastCGI process }
76);
77
d9a32f71 78has _app => (
79 reader => 'app',
80 init_arg => 'app',
81 traits => [qw(NoGetopt)],
82 isa => 'Str',
83 is => 'ro',
84);
cc999ce2 85
86sub run {
87 my $self = shift;
57dc50b0 88
cc999ce2 89 pod2usage() if $self->help;
90 my $app = $self->app;
91 Class::MOP::load_class($app);
335130bc 92 $app->run(
cc999ce2 93 $self->listen,
57dc50b0 94 {
cc999ce2 95 nproc => $self->nproc,
96 pidfile => $self->pidfile,
97 manager => $self->manager,
98 detach => $self->detach,
99 keep_stderr => $self->keep_stderr,
57dc50b0 100 }
cc999ce2 101 );
102
103}
104
0ba6e8aa 1051;