Add built local::lib
[catagits/Gitalist.git] / local-lib5 / bin / catalyst.pl
1 #!/usr/bin/perl -w
2
3 eval 'exec /usr/bin/perl -w -S $0 ${1+"$@"}'
4     if 0; # not running under some shell
5
6 use strict;
7 use Getopt::Long;
8 use Pod::Usage;
9 BEGIN {
10 eval " use Catalyst::Devel 1.0; ";
11
12 if ($@) {
13   die <<END;
14 To use the Catalyst development tools including catalyst.pl and the
15 generated script/myapp_create.pl you need Catalyst::Helper, which is
16 part of the Catalyst-Devel distribution. Please install this via a
17 vendor package or by running one of -
18
19   perl -MCPAN -e 'install Catalyst::Devel'
20   perl -MCPANPLUS -e 'install Catalyst::Devel'
21 END
22
23 }
24 };
25
26 use Catalyst::Helper;
27
28 my $force    = 0;
29 my $help     = 0;
30 my $makefile = 0;
31 my $scripts  = 0;
32
33 GetOptions(
34     'help|?'      => \$help,
35     'force|nonew' => \$force,
36     'makefile'    => \$makefile,
37     'scripts'     => \$scripts,
38 );
39
40 pod2usage(1) if ( $help || !$ARGV[0] );
41
42 my $helper = Catalyst::Helper->new(
43     {
44         '.newfiles' => !$force,
45         'makefile'  => $makefile,
46         'scripts'   => $scripts,
47         name => $ARGV[0],
48     }
49 );
50 # Pass $ARGV[0] for compatibility with old ::Devel
51 pod2usage(1) unless $helper->mk_app( $ARGV[0] );
52
53 1;
54 __END__
55
56 =head1 NAME
57
58 catalyst - Bootstrap a Catalyst application
59
60 =head1 SYNOPSIS
61
62 catalyst.pl [options] application-name
63
64 'catalyst.pl' creates a skeleton for a new application, and allows you to
65 upgrade the skeleton of your old application.
66
67  Options:
68    -force      don't create a .new file where a file to be created exists
69    -help       display this help and exit
70    -makefile   only update Makefile.PL
71    -scripts    only update helper scripts
72
73  application-name must be a valid Perl module name and can include "::", 
74  which will be converted to '-' in the project name.
75
76
77  Examples:
78     catalyst.pl My::App
79     catalyst.pl MyApp
80
81  To upgrade your app to a new version of Catalyst:
82     catalyst.pl -force -scripts MyApp
83
84
85 =head1 DESCRIPTION
86
87 The C<catalyst.pl> script bootstraps a Catalyst application, creating a
88 directory structure populated with skeleton files.  
89
90 The application name must be a valid Perl module name.  The name of the
91 directory created is formed from the application name supplied, with double
92 colons replaced with hyphens (so, for example, the directory for C<My::App> is
93 C<My-App>).
94
95 Using the example application name C<My::App>, the application directory will
96 contain the following items:
97
98 =over 4
99
100 =item README
101
102 a skeleton README file, which you are encouraged to expand on
103
104 =item Changes
105
106 a changes file with an initial entry for the creation of the application
107
108 =item Makefile.PL
109
110 Makefile.PL uses the C<Module::Install> system for packaging and distribution
111 of the application.
112
113 =item lib
114
115 contains the application module (C<My/App.pm>) and
116 subdirectories for model, view, and controller components (C<My/App/M>,
117 C<My/App/V>, and C<My/App/C>).  
118
119 =item root
120
121 root directory for your web document content.  This is left empty.
122
123 =item script
124
125 a directory containing helper scripts:
126
127 =over 4
128
129 =item C<myapp_create.pl>
130
131 helper script to generate new component modules
132
133 =item C<myapp_server.pl>
134
135 runs the generated application within a Catalyst test server, which can be
136 used for testing without resorting to a full-blown web server configuration.
137
138 =item C<myapp_cgi.pl>
139
140 runs the generated application as a CGI script
141
142 =item C<myapp_fastcgi.pl>
143
144 runs the generated application as a FastCGI script
145
146 =item C<myapp_test.pl>
147
148 runs an action of the generated application from the comand line.
149
150 =back
151
152 =item t
153
154 test directory
155
156 =back
157
158 The application module generated by the C<catalyst.pl> script is functional,
159 although it reacts to all requests by outputting a friendly welcome screen.
160
161 =head1 NOTE
162
163 Neither C<catalyst.pl> nor the generated helper script will overwrite existing
164 files.  In fact the scripts will generate new versions of any existing files,
165 adding the extension C<.new> to the filename.  The C<.new> file is not created
166 if would be identical to the existing file.  
167
168 This means you can re-run the scripts for example to see if newer versions of
169 Catalyst or its plugins generate different code, or to see how you may have
170 changed the generated code (although you do of course have all your code in a
171 version control system anyway, don't you ...).
172
173 =head1 SEE ALSO
174
175 L<Catalyst::Manual>, L<Catalyst::Manual::Intro>
176
177 =head1 AUTHORS
178
179 Catalyst Contributors, see Catalyst.pm
180
181 =head1 COPYRIGHT
182
183 This library is free software, you can redistribute it and/or modify it under
184 the same terms as Perl itself.
185
186 =cut