Remove DBIC deploy script, this should not be in core runtime
[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',
73e4f0f1 16 isa => Bool,
f4dc8d2f 17 is => 'ro',
18 documentation => qq{ display this help and exits },
19);
20
21has listen => (
22 traits => [qw(Getopt)],
23 cmd_aliases => 'l',
73e4f0f1 24 isa => Int,
f4dc8d2f 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',
73e4f0f1 33 isa => Str,
f4dc8d2f 34 is => 'ro',
35 documentation => qq{ specify a pidfile }
36);
37
38has daemon => (
73e4f0f1 39 isa => Bool,
f4dc8d2f 40 is => 'ro',
41 traits => [qw(Getopt)],
42 cmd_aliases => 'd',
43 documentation => qq{ daemonize }
44);
45
46has manager => (
73e4f0f1 47 isa => Str,
f4dc8d2f 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',
73e4f0f1 57 isa => Bool,
f4dc8d2f 58 is => 'ro',
59 documentation => qq{ log STDERR }
60);
61
62has nproc => (
63 traits => [qw(Getopt)],
64 cmd_aliases => 'np',
73e4f0f1 65 isa => Int,
f4dc8d2f 66 is => 'ro',
67 documentation => qq{ specify an nproc }
68);
69
70has detach => (
71 traits => [qw(Getopt)],
72 cmd_aliases => 'det',
73e4f0f1 73 isa => Bool,
f4dc8d2f 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)],
73e4f0f1 82 isa => Str,
d9a32f71 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
73e4f0f1 105__PACKAGE__->meta->make_immutable;
106
0ba6e8aa 1071;