Updated PAR support
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Helper.pm
index 867d527..1bf824c 100644 (file)
@@ -2,13 +2,11 @@ package Catalyst::Helper;
 
 use strict;
 use base 'Class::Accessor::Fast';
-use Config;
 use File::Spec;
 use File::Path;
 use IO::File;
 use FindBin;
 use Template;
-use Catalyst;
 use Catalyst::Utils;
 use Catalyst::Exception;
 
@@ -58,13 +56,17 @@ Create the main application skeleton.
 
 sub mk_app {
     my ( $self, $name ) = @_;
+
+    # Needs to be here for PAR
+    require Catalyst;
+
     return 0 if $name =~ /[^\w\:]/;
     $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->{startperl} = '#!/usr/bin/perl -w';
     $self->{scriptgen} = $Catalyst::CATALYST_SCRIPT_GEN || 4;
     $self->{author}    = $self->{author} = $ENV{'AUTHOR'}
       || eval { @{ [ getpwuid($<) ] }[6] }
@@ -990,15 +992,24 @@ use Getopt::Long;
 use Pod::Usage;
 use Catalyst::PAR;
 
+my $core = 0;
+my $engine = 'CGI';
 my $help = 0;
+my $par = '[% appprefix %].par';
 
-GetOptions( 'help|?' => \$help );
+GetOptions(
+    'core'     => \$core,
+    'engine=s' => \$engine,
+    'help|?'   => \$help,
+    'par=s'    => \$par
+);
 
 pod2usage(1) if $help;
 
-my $par = Catalyst::PAR->new->package( {
-    par    => $ARGV[0] || '[% appprefix %].par',
-    engine => $ARGV[1],
+Catalyst::PAR->new->package( {
+    core   => $core,
+    engine => $engine,
+    par    => $par,
     class  => '[% name %]'
 } );
 
@@ -1010,10 +1021,13 @@ my $par = Catalyst::PAR->new->package( {
 
 =head1 SYNOPSIS
 
-[% appprefix %]_package.pl [par] [engine]
+[% appprefix %]_package.pl
 
  Options:
+   -core     also include modules bundled with Perl (defaults to false)
+   -engine   engine to use for dependency detection (defaults to CGI)
    -help     display this help and exits
+   -par      name for the par archive (defaults to [% appprefix %].par)
 
  Examples:
    [% appprefix %]_package.pl [% appprefix %].par FastCGI