Commit | Line | Data |
0ba6e8aa |
1 | package Catalyst::Script::FastCGI; |
2 | |
cc999ce2 |
3 | BEGIN { $ENV{CATALYST_ENGINE} ||= 'FastCGI' } |
4 | use FindBin qw/$Bin/; |
5 | use lib "$Bin/../lib"; |
6 | use Pod::Usage; |
7 | use Moose; |
4e45780e |
8 | use MooseX::Types::Moose qw/Str Bool Int/; |
2adf69c3 |
9 | use namespace::autoclean; |
cc999ce2 |
10 | |
11 | with 'MooseX::Getopt'; |
12 | |
f4dc8d2f |
13 | has 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 | |
21 | has 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 | |
30 | has pidfile => ( |
31 | traits => [qw(Getopt)], |
32 | cmd_aliases => 'pid', |
33 | isa => 'Str', |
34 | is => 'ro', |
35 | documentation => qq{ specify a pidfile } |
36 | ); |
37 | |
38 | has daemon => ( |
39 | isa => 'Bool', |
40 | is => 'ro', |
41 | traits => [qw(Getopt)], |
42 | cmd_aliases => 'd', |
43 | documentation => qq{ daemonize } |
44 | ); |
45 | |
46 | has 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 | |
54 | has keep_stderr => ( |
55 | traits => [qw(Getopt)], |
56 | cmd_aliases => 'std', |
57 | isa => 'Bool', |
58 | is => 'ro', |
59 | documentation => qq{ log STDERR } |
60 | ); |
61 | |
62 | has nproc => ( |
63 | traits => [qw(Getopt)], |
64 | cmd_aliases => 'np', |
65 | isa => 'Int', |
66 | is => 'ro', |
67 | documentation => qq{ specify an nproc } |
68 | ); |
69 | |
70 | has 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 |
78 | has _app => ( |
79 | reader => 'app', |
80 | init_arg => 'app', |
81 | traits => [qw(NoGetopt)], |
82 | isa => 'Str', |
83 | is => 'ro', |
84 | ); |
cc999ce2 |
85 | |
86 | sub 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 |
105 | 1; |