=head1 METHODS
-=over 4
-
-=item $self->package( $par, $engine )
+=head2 $self->package(\%options)
=cut
sub package {
my ( $self, $options ) = @_;
- my $par = $options->{par} || 'application.par';
+ my $par = $options->{output} || 'application.par';
my $engine = $options->{engine} || 'CGI';
# Check for PAR
sub {
my $name = $File::Find::name;
return if $name =~ /^\W*lib/;
+ return if $name =~ /^\W*blib/;
+ return if $name =~ /^\W*_build/;
return if $name =~ /\.par$/;
return if $name !~ /\w+/;
push @files, $name;
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");
print $tmp_file <<"EOF";
+die "$class on Catalyst $version\n" if \$0 !~ /par_test.pl\.\\w+\$/;
BEGIN { \$ENV{CATALYST_ENGINE} = '$engine' };
-use FindBin;
use lib 'lib';
-use $class;
+require $class;
+import $class;
+$classes
EOF
$tmp_file->close;
# Create package
- my %opt = ( 'x' => 1, 'n' => 0, 'o' => $par, 'a' => [@files] );
+ local $SIG{__WARN__} = sub { };
+ open my $olderr, '>&STDERR';
+ open STDERR, '>', File::Spec->devnull;
+ my %opt = (
+ 'x' => 1,
+ 'n' => 0,
+ 'o' => $par,
+ 'a' => [@files],
+ 'p' => 1,
+ 'B' => $options->{core},
+ 'm' => $options->{multiarch}
+ );
App::Packer::PAR->new(
frontend => 'Module::ScanDeps',
backend => 'PAR::Packer',
backopts => \%opt,
args => ['par_test.pl'],
)->go;
+ open STDERR, '>&', $olderr;
unlink $par_test;
}
-=back
-
=head1 AUTHOR
Sebastian Riedel, C<sri@oook.de>