Added -makefile to catalyst.pl to generate a new Makefile.PL
[catagits/Catalyst-Runtime.git] / script / catalyst.pl
CommitLineData
fc7ec1d9 1#!/usr/bin/perl -w
2
3use strict;
4use Getopt::Long;
5use Pod::Usage;
6use Catalyst::Helper;
7
4e90e3c1 8my $force = 0;
9my $help = 0;
10my $makefile = 0;
11my $scripts = 0;
12my $short = 0;
fc7ec1d9 13
1c773d18 14GetOptions(
640faa87 15 'help|?' => \$help,
16 'force|nonew' => \$force,
4e90e3c1 17 'makefile' => \$makefile,
640faa87 18 'scripts' => \$scripts,
19 'short' => \$short
1c773d18 20);
fc7ec1d9 21
22pod2usage(1) if ( $help || !$ARGV[0] );
23
4e90e3c1 24my $helper = Catalyst::Helper->new( {
25 '.newfiles' => !$force,
26 'makefile' => $makefile,
27 'scripts' => $scripts,
28 'short' => $short,
29} );
fc7ec1d9 30pod2usage(1) unless $helper->mk_app( $ARGV[0] );
31
321;
33__END__
34
35=head1 NAME
36
37catalyst - Bootstrap a Catalyst application
38
39=head1 SYNOPSIS
40
d459eb44 41catalyst.pl [options] application-name
fc7ec1d9 42
43 Options:
640faa87 44 -force don't create a .new file where a file to be created exists
e4d88362 45 -help display this help and exits
4e90e3c1 46 -makefile update Makefile.PL only
e4d88362 47 -scripts update helper scripts only
48 -short use short types, like C instead of Controller...
fc7ec1d9 49
4be535b1 50 application-name must be a valid Perl module name and can include "::"
fc7ec1d9 51
52 Examples:
d459eb44 53 catalyst.pl My::App
54 catalyst.pl MyApp
fc7ec1d9 55
ae1e6b59 56 To upgrade your app to a new version of Catalyst:
640faa87 57 catalyst.pl -force -scripts MyApp
ae1e6b59 58
03a53815 59
fc7ec1d9 60=head1 DESCRIPTION
61
4be535b1 62The C<catalyst.pl> script bootstraps a Catalyst application, creating a
63directory structure populated with skeleton files.
64
65The application name must be a valid Perl module name. The name of the
66directory created is formed from the application name supplied, with double
67colons replaced with hyphens (so, for example, the directory for C<My::App> is
68C<My-App>).
69
70Using the example application name C<My::App>, the application directory will
71contain the following items:
72
73=over 4
74
75=item README
76
77a skeleton README file, which you are encouraged to expand on
78
79=item Build.PL
80
81a C<Module::Build> build script
82
83=item Changes
84
85a changes file with an initial entry for the creation of the application
86
87=item Makefile.PL
88
89an old-style MakeMaker script. Catalyst uses the C<Module::Build> system so
90this script actually generates a Makeifle that invokes the Build script.
91
92=item lib
93
94contains the application module (C<My/App.pm>) and
95subdirectories for model, view, and controller components (C<My/App/M>,
96C<My/App/V>, and C<My/App/C>).
97
98=item root
99
100root directory for your web document content. This is left empty.
101
102=item script
103
104a directory containing helper scripts:
105
106=over 4
107
108=item C<my_app_create.pl>
109
110helper script to generate new component modules
111
112=item C<my_app_server.pl>
113
114runs the generated application within a Catalyst test server, which can be
115used for testing without resorting to a full-blown web server configuration.
116
117=item C<my_app_cgi.pl>
118
119runs the generated application as a CGI script
120
121=item C<my_app_fastcgi.pl>
122
123runs the generated application as a FastCGI script
124
125
126=item C<my_app_test.pl>
127
128runs an action of the generated application from the comand line.
129
130=back
131
132=item t
133
134test directory
135
136=back
137
138
139The application module generated by the C<catalyst.pl> script is functional,
1c773d18 140although it reacts to all requests by outputting a friendly welcome screen.
4be535b1 141
142
143=head1 NOTE
144
145Neither C<catalyst.pl> nor the generated helper script will overwrite existing
146files. In fact the scripts will generate new versions of any existing files,
147adding the extension C<.new> to the filename. The C<.new> file is not created
148if would be identical to the existing file.
149
150This means you can re-run the scripts for example to see if newer versions of
151Catalyst or its plugins generate different code, or to see how you may have
152changed the generated code (although you do of course have all your code in a
153version control system anyway, don't you ...).
154
155
fc7ec1d9 156
03a53815 157=head1 SEE ALSO
158
4be535b1 159L<Catalyst::Manual>, L<Catalyst::Manual::Intro>
03a53815 160
fc7ec1d9 161=head1 AUTHOR
162
1c773d18 163Sebastian Riedel, C<sri@oook.de>,
164Andrew Ford, C<A.Ford@ford-mason.co.uk>
4be535b1 165
fc7ec1d9 166
167=head1 COPYRIGHT
168
4be535b1 169Copyright 2004-2005 Sebastian Riedel. All rights reserved.
fc7ec1d9 170
1c773d18 171This library is free software, you can redistribute it and/or modify it under
172the same terms as Perl itself.
fc7ec1d9 173
174=cut