Rename --title to --proc_title as that makes more sense. Remove -t option as it's...
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Script / FastCGI.pm
1 package Catalyst::Script::FastCGI;
2
3 BEGIN { $ENV{CATALYST_ENGINE} ||= 'FastCGI' }
4 use Moose;
5 use MooseX::Types::Moose qw/Str Bool Int/;
6 use namespace::autoclean;
7
8 with 'Catalyst::ScriptRole';
9
10 has listen => (
11     traits        => [qw(Getopt)],
12     cmd_aliases   => 'l',
13     isa           => Str,
14     is            => 'ro',
15     documentation => 'Specify a listening port/socket',
16 );
17
18 has pidfile => (
19     traits        => [qw(Getopt)],
20     cmd_aliases   => [qw/pid p/],
21     isa           => Str,
22     is            => 'ro',
23     documentation => 'Specify a pidfile',
24 );
25
26 has daemon => (
27     traits        => [qw(Getopt)],
28     isa           => Bool,
29     is            => 'ro',
30     cmd_aliases   => [qw/d detach/], # Eww, detach is here as we fucked it up.. Deliberately not documented
31     documentation => 'Daemonize (go into the background)',
32 );
33
34 has manager => (
35     traits        => [qw(Getopt)],
36     isa           => Str,
37     is            => 'ro',
38     cmd_aliases   => 'M',
39     documentation => 'Use a different FastCGI process manager class',
40 );
41
42 has keeperr => (
43     traits        => [qw(Getopt)],
44     cmd_aliases   => 'e',
45     isa           => Bool,
46     is            => 'ro',
47     documentation => 'Log STDERR',
48 );
49
50 has nproc => (
51     traits        => [qw(Getopt)],
52     cmd_aliases   => 'n',
53     isa           => Int,
54     is            => 'ro',
55     documentation => 'Specify a number of child processes',
56 );
57
58 has proc_title => (
59     traits        => [qw(Getopt)],
60     isa           => Str,
61     is            => 'ro',
62     documentation => 'Set the process title',
63 );
64
65 sub _application_args {
66     my ($self) = shift;
67     return (
68         $self->listen,
69         {
70             nproc   => $self->nproc,
71             pidfile => $self->pidfile,
72             manager => $self->manager,
73             detach  => $self->daemon,
74             keep_stderr => $self->keeperr,
75             proc_title => $self->proc_title,
76         }
77     );
78 }
79
80 __PACKAGE__->meta->make_immutable;
81
82 =head1 NAME
83
84 Catalyst::Script::FastCGI - The FastCGI Catalyst Script
85
86 =head1 SYNOPSIS
87
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
107       --proc_title set the process title
108
109 =head1 DESCRIPTION
110
111 Run a Catalyst application as fastcgi.
112
113 =head1 AUTHORS
114
115 Catalyst Contributors, see Catalyst.pm
116
117 =head1 COPYRIGHT
118
119 This library is free software. You can redistribute it and/or modify it under
120 the same terms as Perl itself.
121
122 =cut