use strict;
use Getopt::Long;
use Pod::Usage;
+BEGIN {
+eval " use Catalyst::Devel 1.0; ";
+
+if ($@) {
+ die <<END;
+To use the Catalyst development tools including catalyst.pl and the
+generated script/myapp_create.pl you need Catalyst::Helper, which is
+part of the Catalyst-Devel distribution. Please install this via a
+vendor package or by running one of -
+
+ perl -MCPAN -e 'install Catalyst::Devel'
+ perl -MCPANPLUS -e 'install Catalyst::Devel'
+END
+
+}
+};
+
use Catalyst::Helper;
-my $help = 0;
-my $nonew = 0;
+my $force = 0;
+my $help = 0;
+my $makefile = 0;
+my $scripts = 0;
-GetOptions( 'help|?' => \$help,
- 'nonew' => \$nonew );
+GetOptions(
+ 'help|?' => \$help,
+ 'force|nonew' => \$force,
+ 'makefile' => \$makefile,
+ 'scripts' => \$scripts,
+);
pod2usage(1) if ( $help || !$ARGV[0] );
-my $helper = Catalyst::Helper->new({'.newfiles' => !$nonew});
+my $helper = Catalyst::Helper->new(
+ {
+ '.newfiles' => !$force,
+ 'makefile' => $makefile,
+ 'scripts' => $scripts,
+ name => $ARGV[0],
+ }
+);
+# Pass $ARGV[0] for compatibility with old ::Devel
pod2usage(1) unless $helper->mk_app( $ARGV[0] );
1;
catalyst.pl [options] application-name
+'catalyst.pl' creates a skeleton for a new application, and allows you to
+upgrade the skeleton of your old application.
+
Options:
- -help display this help and exits
- -nonew don't create a .new file where a file to be created exists
+ -force don't 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 '-' in the project name.
- application-name must be a valid Perl module name and can include "::"
Examples:
catalyst.pl My::App
catalyst.pl MyApp
+ To upgrade your app to a new version of Catalyst:
+ catalyst.pl -force -scripts MyApp
+
=head1 DESCRIPTION
a skeleton README file, which you are encouraged to expand on
-=item Build.PL
-
-a C<Module::Build> build script
-
=item Changes
a changes file with an initial entry for the creation of the application
=item Makefile.PL
-an old-style MakeMaker script. Catalyst uses the C<Module::Build> system so
-this script actually generates a Makeifle that invokes the Build script.
+Makefile.PL uses the C<Module::Install> system for packaging and distribution
+of the application.
=item lib
=over 4
-=item C<my_app_create.pl>
+=item C<myapp_create.pl>
helper script to generate new component modules
-=item C<my_app_server.pl>
+=item C<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.
-=item C<my_app_cgi.pl>
+=item C<myapp_cgi.pl>
runs the generated application as a CGI script
-=item C<my_app_fastcgi.pl>
+=item C<myapp_fastcgi.pl>
runs the generated application as a FastCGI script
+=item C<myapp_test.pl>
-=item C<my_app_test.pl>
-
-runs an action of the generated application from the comand line.
+runs an action of the generated application from the command line.
=back
=back
-
The application module generated by the C<catalyst.pl> script is functional,
-although it reacts to all requests by outputting the message:
-
- Congratulations, My::App is on Catalyst!
-
+although it reacts to all requests by outputting a friendly welcome screen.
=head1 NOTE
changed the generated code (although you do of course have all your code in a
version control system anyway, don't you ...).
-
-
=head1 SEE ALSO
L<Catalyst::Manual>, L<Catalyst::Manual::Intro>
-=head1 AUTHOR
-
-Sebastian Riedel <sri@oook.de>,
-Andrew Ford <A.Ford@ford-mason.co.uk>
+=head1 AUTHORS
+Catalyst Contributors, see Catalyst.pm
=head1 COPYRIGHT
-Copyright 2004-2005 Sebastian Riedel. All rights reserved.
-
-This library is free software. You can redistribute it and/or modify it under
-the same terms as perl itself.
+This library is free software, you can redistribute it and/or modify it under
+the same terms as Perl itself.
=cut