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