Updated PAR support
Sebastian Riedel [Thu, 17 Nov 2005 15:56:30 +0000 (15:56 +0000)]
lib/Catalyst.pm
lib/Catalyst/Helper.pm
lib/Catalyst/PAR.pm

index 7f6dbc5..1ddd4d3 100644 (file)
@@ -56,7 +56,7 @@ our $DETACH    = "catalyst_detach\n";
 require Module::Pluggable::Fast;
 
 # Helper script generation
-our $CATALYST_SCRIPT_GEN = 14;
+our $CATALYST_SCRIPT_GEN = 15;
 
 __PACKAGE__->mk_classdata($_)
   for qw/components arguments dispatcher engine log dispatcher_class
index f311017..4787359 100644 (file)
@@ -993,12 +993,14 @@ use Pod::Usage;
 use Catalyst::PAR;
 
 my $core      = 0;
+my $classes   = '';
 my $engine    = 'CGI';
 my $help      = 0;
 my $multiarch = 0;
 my $par       = '[% appprefix %].par';
 
 GetOptions(
+    'classes=s' => \$classes,
     'core'      => \$core,
     'engine=s'  => \$engine,
     'help|?'    => \$help,
@@ -1009,6 +1011,7 @@ GetOptions(
 pod2usage(1) if $help;
 
 Catalyst::PAR->new->package( {
+    classes   => $classes,
     core      => $core,
     engine    => $engine,
     par       => $par,
@@ -1027,6 +1030,8 @@ Catalyst::PAR->new->package( {
 [% appprefix %]_package.pl
 
  Options:
+   -classes      comma separated list of additional classes to
+                 include in package
    -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
@@ -1034,8 +1039,9 @@ Catalyst::PAR->new->package( {
    -par          name for the par archive (defaults to [% appprefix %].par)
 
  Examples:
-   [% appprefix %]_package.pl [% appprefix %].par FastCGI
-   [% appprefix %]_package.pl foo_linux_i386_apache2.par Apache2
+   [% appprefix %]_package.pl -engine FastCGI
+   [% appprefix %]_package.pl -par foo_linux_i386_apache2.par -engine Apache2
+   [% appprefix %]_package.pl -classes Test::More,Foo::Bar -par foo.par
 
  See also:
    perldoc Catalyst::Manual
index fe336e6..7731d76 100644 (file)
@@ -64,6 +64,10 @@ sub package {
     my $par_test = File::Spec->catfile( $FindBin::Bin, '..', 'par_test.pl' );
     unlink $par_test;
 
+    my $classes = '';
+    for my $req ( split ',', $options->{classes} ) {
+        $classes .= "require $req;\n";
+    }
     my $version  = $Catalyst::VERSION;
     my $class    = $options->{class};
     my $tmp_file = IO::File->new("> $par_test");
@@ -73,6 +77,7 @@ BEGIN { \$ENV{CATALYST_ENGINE} = '$engine' };
 use lib 'lib';
 require $class;
 import $class;
+$classes
 EOF
     $tmp_file->close;