.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{\
.    if \nF \{\
.        de IX
.        tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{\
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\" ========================================================================
.\"
.IX Title "CATALYST 1p"
.TH CATALYST 1p "2020-09-13" "perl v5.30.3" "User Contributed Perl Documentation"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
catalyst \- Bootstrap a Catalyst application
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
catalyst.pl [options] application-name
.PP
\&'catalyst.pl' creates a skeleton for a new application, and allows you to
upgrade the skeleton of your old application.
.PP
.Vb 5
\& Options:
\&   \-force      don\*(Aqt create a .new file where a file to be created exists
\&   \-help       display this help and exit
\&   \-makefile   only update Makefile.PL
\&   \-scripts    only update helper scripts
\&
\& application\-name must be a valid Perl module name and can include "::", 
\& which will be converted to \*(Aq\-\*(Aq in the project name.
\&
\&
\& Examples:
\&    catalyst.pl My::App
\&    catalyst.pl MyApp
\&
\& To upgrade your app to a new version of Catalyst:
\&    catalyst.pl \-force \-scripts MyApp
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
The \f(CW\*(C`catalyst.pl\*(C'\fR script bootstraps a Catalyst application, creating a
directory structure populated with skeleton files.
.PP
The application name must be a valid Perl module name.  The name of the
directory created is formed from the application name supplied, with double
colons replaced with hyphens (so, for example, the directory for \f(CW\*(C`My::App\*(C'\fR is
\&\f(CW\*(C`My\-App\*(C'\fR).
.PP
Using the example application name \f(CW\*(C`My::App\*(C'\fR, the application directory will
contain the following items:
.IP "\s-1README\s0" 4
.IX Item "README"
a skeleton \s-1README\s0 file, which you are encouraged to expand on
.IP "Changes" 4
.IX Item "Changes"
a changes file with an initial entry for the creation of the application
.IP "Makefile.PL" 4
.IX Item "Makefile.PL"
Makefile.PL uses the \f(CW\*(C`Module::Install\*(C'\fR system for packaging and distribution
of the application.
.IP "lib" 4
.IX Item "lib"
contains the application module (\f(CW\*(C`My/App.pm\*(C'\fR) and
subdirectories for model, view, and controller components (\f(CW\*(C`My/App/M\*(C'\fR,
\&\f(CW\*(C`My/App/V\*(C'\fR, and \f(CW\*(C`My/App/C\*(C'\fR).
.IP "root" 4
.IX Item "root"
root directory for your web document content.  This is left empty.
.IP "script" 4
.IX Item "script"
a directory containing helper scripts:
.RS 4
.ie n .IP """myapp_create.pl""" 4
.el .IP "\f(CWmyapp_create.pl\fR" 4
.IX Item "myapp_create.pl"
helper script to generate new component modules
.ie n .IP """myapp_server.pl""" 4
.el .IP "\f(CWmyapp_server.pl\fR" 4
.IX Item "myapp_server.pl"
runs the generated application within a Catalyst test server, which can be
used for testing without resorting to a full-blown web server configuration.
.ie n .IP """myapp_cgi.pl""" 4
.el .IP "\f(CWmyapp_cgi.pl\fR" 4
.IX Item "myapp_cgi.pl"
runs the generated application as a \s-1CGI\s0 script
.ie n .IP """myapp_fastcgi.pl""" 4
.el .IP "\f(CWmyapp_fastcgi.pl\fR" 4
.IX Item "myapp_fastcgi.pl"
runs the generated application as a FastCGI script
.ie n .IP """myapp_test.pl""" 4
.el .IP "\f(CWmyapp_test.pl\fR" 4
.IX Item "myapp_test.pl"
runs an action of the generated application from the command line.
.RE
.RS 4
.RE
.IP "t" 4
.IX Item "t"
test directory
.PP
The application module generated by the \f(CW\*(C`catalyst.pl\*(C'\fR script is functional,
although it reacts to all requests by outputting a friendly welcome screen.
.SH "NOTE"
.IX Header "NOTE"
Neither \f(CW\*(C`catalyst.pl\*(C'\fR nor the generated helper script will overwrite existing
files.  In fact the scripts will generate new versions of any existing files,
adding the extension \f(CW\*(C`.new\*(C'\fR to the filename.  The \f(CW\*(C`.new\*(C'\fR file is not created
if would be identical to the existing file.
.PP
This means you can re-run the scripts for example to see if newer versions of
Catalyst or its plugins generate different code, or to see how you may have
changed the generated code (although you do of course have all your code in a
version control system anyway, don't you ...).
.SH "SEE ALSO"
.IX Header "SEE ALSO"
Catalyst::Manual, Catalyst::Manual::Intro
.SH "AUTHORS"
.IX Header "AUTHORS"
Catalyst Contributors, see Catalyst.pm
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
This library is free software, you can redistribute it and/or modify it under
the same terms as Perl itself.
