Test uri_for with path = 0
[catagits/Catalyst-Runtime.git] / script / catalyst.pl
index 0de8e3d..a0c2324 100755 (executable)
@@ -3,22 +3,48 @@
 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 $short = 0;
+my $force    = 0;
+my $help     = 0;
+my $makefile = 0;
+my $scripts  = 0;
 
 GetOptions(
-    'help|?' => \$help,
-    'nonew'  => \$nonew,
-    'short'  => \$short
+    'help|?'      => \$help,
+    'force|nonew' => \$force,
+    'makefile'    => \$makefile,
+    'scripts'     => \$scripts,
 );
 
 pod2usage(1) if ( $help || !$ARGV[0] );
 
-my $helper =
-  Catalyst::Helper->new( { '.newfiles' => !$nonew, 'short' => $short } );
+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;
@@ -32,17 +58,26 @@ 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
-   -nonew    don't create a .new file where a file to be created exists
-   -short    use short types, like C instead of Controller...
+   -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
 
@@ -63,18 +98,14 @@ contain the following items:
 
 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
 
@@ -92,27 +123,26 @@ a directory containing helper scripts:
 
 =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
 
@@ -122,11 +152,9 @@ test directory
 
 =back
 
-
 The application module generated by the C<catalyst.pl> script is functional,
 although it reacts to all requests by outputting a friendly welcome screen.
 
-
 =head1 NOTE
 
 Neither C<catalyst.pl> nor the generated helper script will overwrite existing
@@ -139,22 +167,16 @@ 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<Catalyst::Manual>, L<Catalyst::Manual::Intro>
 
-=head1 AUTHOR
-
-Sebastian Riedel, C<sri@oook.de>,
-Andrew Ford, C<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.