This is not a release.
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Script / FastCGI.pm
CommitLineData
0ba6e8aa 1package Catalyst::Script::FastCGI;
2
cc999ce2 3BEGIN { $ENV{CATALYST_ENGINE} ||= 'FastCGI' }
cc999ce2 4use Moose;
4e45780e 5use MooseX::Types::Moose qw/Str Bool Int/;
2adf69c3 6use namespace::autoclean;
cc999ce2 7
d3082fac 8with 'Catalyst::ScriptRole';
f4dc8d2f 9
10has listen => (
ab7eb5a9 11 traits => [qw(Getopt)],
f4dc8d2f 12 cmd_aliases => 'l',
53c6ec79 13 isa => Str,
f4dc8d2f 14 is => 'ro',
d3082fac 15 documentation => 'Specify a listening port/socket',
f4dc8d2f 16);
17
18has pidfile => (
ab7eb5a9 19 traits => [qw(Getopt)],
f4dc8d2f 20 cmd_aliases => 'pid',
73e4f0f1 21 isa => Str,
f4dc8d2f 22 is => 'ro',
d3082fac 23 documentation => 'Specify a pidfile',
f4dc8d2f 24);
25
ab7eb5a9 26has daemon => (
27 traits => [qw(Getopt)],
111d3c9a 28 isa => Bool,
29 is => 'ro',
30 cmd_aliases => 'd',
53c6ec79 31 documentation => 'Daemonize (go into the background)',
f4dc8d2f 32);
33
ab7eb5a9 34has manager => (
35 traits => [qw(Getopt)],
111d3c9a 36 isa => Str,
f4dc8d2f 37 is => 'ro',
53c6ec79 38 cmd_aliases => 'M',
39 documentation => 'Use a different FastCGI process manager class',
f4dc8d2f 40);
41
53c6ec79 42has keeperr => (
ab7eb5a9 43 traits => [qw(Getopt)],
111d3c9a 44 cmd_aliases => 'e',
45 isa => Bool,
46 is => 'ro',
d3082fac 47 documentation => 'Log STDERR',
f4dc8d2f 48);
49
50has nproc => (
ab7eb5a9 51 traits => [qw(Getopt)],
111d3c9a 52 cmd_aliases => 'n',
73e4f0f1 53 isa => Int,
111d3c9a 54 is => 'ro',
53c6ec79 55 documentation => 'Specify a number of child processes',
f4dc8d2f 56);
57
ab7eb5a9 58has detach => (
59 traits => [qw(Getopt)],
111d3c9a 60 cmd_aliases => 'det',
61 isa => Bool,
62 is => 'ro',
d3082fac 63 documentation => 'Detach this FastCGI process',
d9a32f71 64);
cc999ce2 65
d3082fac 66sub _application_args {
67 my ($self) = shift;
68 return (
cc999ce2 69 $self->listen,
57dc50b0 70 {
cc999ce2 71 nproc => $self->nproc,
72 pidfile => $self->pidfile,
73 manager => $self->manager,
74 detach => $self->detach,
53c6ec79 75 keep_stderr => $self->keeperr,
57dc50b0 76 }
cc999ce2 77 );
cc999ce2 78}
79
73e4f0f1 80__PACKAGE__->meta->make_immutable;
81
d3082fac 82=head1 NAME
83
84Catalyst::Script::FastCGI - The FastCGI Catalyst Script
85
86=head1 SYNOPSIS
87
53c6ec79 88 myapp_fastcgi.pl [options]
89
90 Options:
91 -? -help display this help and exits
92 -l -listen Socket path to listen on
93 (defaults to standard input)
94 can be HOST:PORT, :PORT or a
95 filesystem path
96 -n -nproc specify number of processes to keep
97 to serve requests (defaults to 1,
98 requires -listen)
99 -p -pidfile specify filename for pid file
100 (requires -listen)
101 -d -daemon daemonize (requires -listen)
102 -M -manager specify alternate process manager
103 (FCGI::ProcManager sub-class)
104 or empty string to disable
105 -e -keeperr send error messages to STDOUT, not
106 to the webserver
d3082fac 107
108=head1 DESCRIPTION
109
53c6ec79 110Run a Catalyst application as fastcgi.
d3082fac 111
112=head1 AUTHORS
113
114Catalyst Contributors, see Catalyst.pm
115
116=head1 COPYRIGHT
117
118This library is free software. You can redistribute it and/or modify it under
119the same terms as Perl itself.
120
121=cut