X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=script%2Fcatalyst.pl;h=6a20cfed16f03a3105c68c720b28fb77feaa66cc;hp=7514e1178ab2f5f0fc96a56476748d7c9488db80;hb=e4d883627ffd461f5ad4c55f3d6f5126c6513616;hpb=ef3250bcc579b6ace8ec3bc0b4d93b9660162994 diff --git a/script/catalyst.pl b/script/catalyst.pl index 7514e11..6a20cfe 100755 --- a/script/catalyst.pl +++ b/script/catalyst.pl @@ -5,15 +5,23 @@ use Getopt::Long; use Pod::Usage; use Catalyst::Helper; -my $help = 0; -my $nonew = 0; - -GetOptions( 'help|?' => \$help, - 'nonew' => \$nonew ); +my $help = 0; +my $nonew = 0; +my $scripts = 0; +my $short = 0; + +GetOptions( + 'help|?' => \$help, + 'nonew' => \$nonew, + 'scripts' => \$scripts, + 'short' => \$short +); pod2usage(1) if ( $help || !$ARGV[0] ); -my $helper = Catalyst::Helper->new({'.newfiles' => !$nonew}); +my $helper = + Catalyst::Helper->new( + { '.newfiles' => !$nonew, 'scripts' => $scripts, 'short' => $short } ); pod2usage(1) unless $helper->mk_app( $ARGV[0] ); 1; @@ -28,38 +36,130 @@ catalyst - Bootstrap a Catalyst application catalyst.pl [options] application-name Options: - -help display this help and exits - -nonew don't create a .new file where a file to be created exists + -help display this help and exits + -nonew don't create a .new file where a file to be created exists + -scripts update helper scripts only + -short use short types, like C instead of Controller... - application-name has to be a valid Perl module name and can include :: + application-name must 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 =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 Build.PL + +a C 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 system so +this script actually generates a Makeifle that invokes the Build script. + +=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 comand 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 -Sebastian Riedel, C +Sebastian Riedel, C, +Andrew Ford, C + =head1 COPYRIGHT -Copyright 2004 Sebastian Riedel. All rights reserved. +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