Align Vhost code with reality.
[catagits/Gitalist.git] / script / gitalist_create.pl
1 #!/usr/bin/perl
2 use FindBin;
3 BEGIN {
4     my $env = "$FindBin::Bin/env";
5     if (-r $env) {
6         do $env or die $@;
7     }
8 }
9
10 use strict;
11 use warnings;
12 use Getopt::Long;
13 use Pod::Usage;
14 eval "use Catalyst::Helper;";
15
16 if ($@) {
17   die <<END;
18 To use the Catalyst development tools including catalyst.pl and the
19 generated script/myapp_create.pl you need Catalyst::Helper, which is
20 part of the Catalyst-Devel distribution. Please install this via a
21 vendor package or by running one of -
22
23   perl -MCPAN -e 'install Catalyst::Devel'
24   perl -MCPANPLUS -e 'install Catalyst::Devel'
25 END
26 }
27
28 my $force = 0;
29 my $mech  = 0;
30 my $help  = 0;
31
32 GetOptions(
33     'nonew|force'    => \$force,
34     'mech|mechanize' => \$mech,
35     'help|?'         => \$help
36  );
37
38 pod2usage(1) if ( $help || !$ARGV[0] );
39
40 my $helper = Catalyst::Helper->new( { '.newfiles' => !$force, mech => $mech } );
41
42 pod2usage(1) unless $helper->mk_component( 'Gitalist', @ARGV );
43
44 1;
45
46 =head1 NAME
47
48 gitalist_create.pl - Create a new Catalyst Component
49
50 =head1 SYNOPSIS
51
52 gitalist_create.pl [options] model|view|controller name [helper] [options]
53
54  Options:
55    -force        don't create a .new file where a file to be created exists
56    -mechanize    use Test::WWW::Mechanize::Catalyst for tests if available
57    -help         display this help and exits
58
59  Examples:
60    gitalist_create.pl controller My::Controller
61    gitalist_create.pl -mechanize controller My::Controller
62    gitalist_create.pl view My::View
63    gitalist_create.pl view MyView TT
64    gitalist_create.pl view TT TT
65    gitalist_create.pl model My::Model
66    gitalist_create.pl model SomeDB DBIC::Schema MyApp::Schema create=dynamic\
67    dbi:SQLite:/tmp/my.db
68    gitalist_create.pl model AnotherDB DBIC::Schema MyApp::Schema create=static\
69    dbi:Pg:dbname=foo root 4321
70
71  See also:
72    perldoc Catalyst::Manual
73    perldoc Catalyst::Manual::Intro
74
75 =head1 DESCRIPTION
76
77 Create a new Catalyst Component.
78
79 Existing component files are not overwritten.  If any of the component files
80 to be created already exist the file will be written with a '.new' suffix.
81 This behavior can be suppressed with the C<-force> option.
82
83 =head1 AUTHORS
84
85 Catalyst Contributors, see Catalyst.pm
86
87 =head1 COPYRIGHT
88
89 This library is free software. You can redistribute it and/or modify
90 it under the same terms as Perl itself.
91
92 =cut