Added pidfile option to FastCGI server
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Helper.pm
index 5288ed2..89ee894 100644 (file)
@@ -62,26 +62,30 @@ sub mk_app {
     $self->{name} = $name;
     $self->{dir}  = $name;
     $self->{dir} =~ s/\:\:/-/g;
+    $self->{script}    = File::Spec->catdir( $self->{dir}, 'script' );
     $self->{appprefix} = Catalyst::Utils::appprefix($name);
     $self->{startperl} = $Config{startperl};
     $self->{scriptgen} = $Catalyst::CATALYST_SCRIPT_GEN || 4;
     $self->{author}    = $self->{author} = $ENV{'AUTHOR'}
       || eval { @{ [ getpwuid($<) ] }[6] }
       || 'Catalyst developer';
-    $self->_mk_dirs;
-    $self->_mk_appclass;
-    $self->_mk_build;
-    $self->_mk_makefile;
-    $self->_mk_readme;
-    $self->_mk_changes;
-    $self->_mk_apptest;
+
+    unless ( $self->{scripts} ) {
+        $self->_mk_dirs;
+        $self->_mk_appclass;
+        $self->_mk_build;
+        $self->_mk_makefile;
+        $self->_mk_readme;
+        $self->_mk_changes;
+        $self->_mk_apptest;
+        $self->_mk_images;
+        $self->_mk_favicon;
+    }
     $self->_mk_cgi;
     $self->_mk_fastcgi;
     $self->_mk_server;
     $self->_mk_test;
     $self->_mk_create;
-    $self->_mk_images;
-    $self->_mk_favicon;
     return 1;
 }
 
@@ -210,12 +214,14 @@ sub mk_file {
     my ( $self, $file, $content ) = @_;
     if ( -e $file ) {
         print qq/ exists "$file"\n/;
-        return 0 unless $self->{'.newfiles'};
-        if ( my $f = IO::File->new("< $file") ) {
-            my $oldcontent = join( '', (<$f>) );
-            return 0 if $content eq $oldcontent;
+        return 0 unless ( $self->{'.newfiles'} || $self->{scripts} );
+        if ( $self->{'.newfiles'} ) {
+            if ( my $f = IO::File->new("< $file") ) {
+                my $oldcontent = join( '', (<$f>) );
+                return 0 if $content eq $oldcontent;
+            }
+            $file .= '.new';
         }
-        $file .= '.new';
     }
     if ( my $f = IO::File->new("> $file") ) {
         binmode $f;
@@ -275,7 +281,6 @@ sub render_file {
 sub _mk_dirs {
     my $self = shift;
     $self->mk_dir( $self->{dir} );
-    $self->{script} = File::Spec->catdir( $self->{dir}, 'script' );
     $self->mk_dir( $self->{script} );
     $self->{lib} = File::Spec->catdir( $self->{dir}, 'lib' );
     $self->mk_dir( $self->{lib} );
@@ -486,16 +491,24 @@ package [% name %];
 use strict;
 use warnings;
 
-# -Debug activates the debug mode for very useful log messages
-# Static::Simple will serve static files from the root directory
+#
+# Set flags and add plugins for the application
+#
+#         -Debug: activates the debug mode for very useful log messages
+# Static::Simple: will serve static files from the applications root directory
+#
 use Catalyst qw/-Debug Static::Simple/;
 
 our $VERSION = '0.01';
 
+#
 # Configure the application
+#
 __PACKAGE__->config( name => '[% name %]' );
 
+#
 # Start the application
+#
 __PACKAGE__->setup;
 
 =head1 NAME
@@ -518,7 +531,9 @@ Catalyst based application.
 
 =cut
 
+#
 # Output a friendly welcome message
+#
 sub default : Private {
     my ( $self, $c ) = @_;
 
@@ -526,7 +541,9 @@ sub default : Private {
     $c->response->body( $c->welcome_message );
 }
 
-# Uncomment and modify this end action after adding a View class
+#
+# Uncomment and modify this end action after adding a View component
+#
 #=item end
 #
 #=cut
@@ -587,7 +604,6 @@ use strict;
 use Catalyst::Build;
 
 my $build = Catalyst::Build->new(
-    create_makefile_pl => 'passthrough',
     license            => 'perl',
     module_name        => '[% name %]',
     requires           => { Catalyst => '5.49' },
@@ -674,17 +690,23 @@ use lib "$FindBin::Bin/../lib";
 use [% name %];
 
 my $help = 0;
-my ( $listen, $nproc );
+my ( $listen, $nproc, $pidfile );
  
 GetOptions(
-    'help|?'     => \$help,
-    'listen|l=s' => \$listen,
-    'nproc|n=i'  => \$nproc,
+    'help|?'      => \$help,
+    'listen|l=s'  => \$listen,
+    'nproc|n=i'   => \$nproc,
+    'pidfile|p=s' => \$pidfile,
 );
 
 pod2usage(1) if $help;
 
-[% name %]->run( $listen, { nproc => $nproc } );
+[% name %]->run( 
+    $listen, 
+    {   nproc   => $nproc,
+        pidfile => $pidfile, 
+    }
+);
 
 1;
 
@@ -735,6 +757,7 @@ use Pod::Usage;
 use FindBin;
 use lib "$FindBin::Bin/../lib";
 
+my $debug         = 0;
 my $fork          = 0;
 my $help          = 0;
 my $host          = undef;
@@ -746,6 +769,7 @@ my $restart_regex = '\.yml$|\.yaml$|\.pm$';
 my @argv = @ARGV;
 
 GetOptions(
+    'debug|d'           => \$debug,
     'fork'              => \$fork,
     'help|?'            => \$help,
     'host=s'            => \$host,
@@ -760,6 +784,9 @@ pod2usage(1) if $help;
 if ( $restart ) {
     $ENV{CATALYST_ENGINE} = 'HTTP::Restarter';
 }
+if ( $debug ) {
+    $ENV{CATALYST_DEBUG} = 1;
+}
 
 require [% name %];
 
@@ -782,6 +809,7 @@ require [% name %];
 [% appprefix %]_server.pl [options]
 
  Options:
+   -d -debug          force debug mode
    -f -fork           handle each request in a new process
                       (defaults to false)
    -? -help           display this help and exits
@@ -817,14 +845,12 @@ it under the same terms as Perl itself.
 __test__
 [% startperl %] -w
 
-BEGIN { $ENV{CATALYST_ENGINE} ||= 'Test' }
-
 use strict;
 use Getopt::Long;
 use Pod::Usage;
 use FindBin;
 use lib "$FindBin::Bin/../lib";
-use [% name %];
+use Catalyst::Test '[% name %]';
 
 my $help = 0;
 
@@ -832,7 +858,7 @@ GetOptions( 'help|?' => \$help );
 
 pod2usage(1) if ( $help || !$ARGV[0] );
 
-print [% name %]->run($ARGV[0])->content . "\n";
+print request($ARGV[0])->content . "\n";
 
 1;
 
@@ -967,7 +993,9 @@ Catalyst [% long_type %].
 
 =over 4
 
-# Uncomment, modify and add new actions to fit your needs
+#
+# Uncomment and modify this or add new actions to fit your needs
+#
 #=item default
 #
 #=cut