X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=script%2Fcatalyst.pl;h=a0c232472767a7e853dcc2d11e7c75ccd207aaa0;hp=ca1e0e346ea4651e3a5dccdff152bddca3a274da;hb=7064f69b1dfb59d1f3bad647b2097d0320acce8a;hpb=d459eb44a6bf17d50dca6587380c3b5dd6209e0e diff --git a/script/catalyst.pl b/script/catalyst.pl index ca1e0e3..a0c2324 100755 --- a/script/catalyst.pl +++ b/script/catalyst.pl @@ -3,15 +3,48 @@ use strict; use Getopt::Long; use Pod::Usage; +BEGIN { +eval " use Catalyst::Devel 1.0; "; + +if ($@) { + die < \$help ); +GetOptions( + 'help|?' => \$help, + 'force|nonew' => \$force, + 'makefile' => \$makefile, + 'scripts' => \$scripts, +); pod2usage(1) if ( $help || !$ARGV[0] ); -my $helper = Catalyst::Helper->new; +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; @@ -25,38 +58,126 @@ catalyst - Bootstrap a Catalyst application 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 + -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 has to be a valid Perl module name and can include :: Examples: catalyst.pl My::App catalyst.pl MyApp - See also: - perldoc Catalyst::Manual - perldoc Catalyst::Manual::Intro + To upgrade your app to a new version of Catalyst: + catalyst.pl -force -scripts MyApp + =head1 DESCRIPTION -Bootstrap a Catalyst application. +The C script bootstraps a Catalyst application, creating a +directory structure populated with skeleton files. + +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 C is +C). + +Using the example application name C, the application directory will +contain the following items: + +=over 4 + +=item README + +a skeleton README file, which you are encouraged to expand on + +=item Changes + +a changes file with an initial entry for the creation of the application + +=item Makefile.PL + +Makefile.PL uses the C system for packaging and distribution +of the application. + +=item lib + +contains the application module (C) and +subdirectories for model, view, and controller components (C, +C, and C). + +=item root + +root directory for your web document content. This is left empty. + +=item script + +a directory containing helper scripts: + +=over 4 + +=item C + +helper script to generate new component modules + +=item C + +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 + +runs the generated application as a CGI script + +=item C + +runs the generated application as a FastCGI script + +=item C + +runs an action of the generated application from the command line. + +=back + +=item t + +test directory + +=back + +The application module generated by the C script is functional, +although it reacts to all requests by outputting a friendly welcome screen. + +=head1 NOTE + +Neither C nor the generated helper script will overwrite existing +files. In fact the scripts will generate new versions of any existing files, +adding the extension C<.new> to the filename. The C<.new> file is not created +if would be identical to the existing file. + +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 ...). =head1 SEE ALSO -L, L, L, -L, L, L, -L +L, L -=head1 AUTHOR +=head1 AUTHORS -Sebastian Riedel Sebastian Riedel, C +Catalyst Contributors, see Catalyst.pm =head1 COPYRIGHT -Copyright 2004 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