4 use base 'Class::Accessor::Fast';
13 Catalyst::PAR - Package Catalyst Applications
21 Package Catalyst Applications.
27 =item $self->package( $par, $engine )
32 my ( $self, $options ) = @_;
34 my $par = $options->{par} || 'application.par';
35 my $engine = $options->{engine} || 'CGI';
39 die "Please install PAR" if $@;
40 eval "use PAR::Packer ()";
41 die "Please install PAR::Packer" if $@;
42 eval "use App::Packer::PAR ()";
43 die "Please install App::Packer::PAR" if $@;
44 eval "use Module::ScanDeps ()";
45 die "Please install Module::ScanDeps" if $@;
47 chdir File::Spec->catdir( $FindBin::Bin, '..' );
49 # Find additional files
53 my $name = $File::Find::name;
54 return if $name =~ /^\W*lib/;
55 return if $name =~ /^\W*blib/;
56 return if $name =~ /^\W*_build/;
57 return if $name =~ /\.par$/;
58 return if $name !~ /\w+/;
64 my $par_test = File::Spec->catfile( $FindBin::Bin, '..', 'par_test.pl' );
68 for my $req ( split ',', $options->{classes} ) {
69 $classes .= "require $req;\n";
71 my $version = $Catalyst::VERSION;
72 my $class = $options->{class};
73 my $tmp_file = IO::File->new("> $par_test");
74 print $tmp_file <<"EOF";
75 die "$class on Catalyst $version\n" if \$0 !~ /par_test.pl\.\\w+\$/;
76 BEGIN { \$ENV{CATALYST_ENGINE} = '$engine' };
85 local $SIG{__WARN__} = sub { };
86 open my $olderr, '>&STDERR';
87 open STDERR, '>', File::Spec->devnull;
94 'B' => $options->{core},
95 'm' => $options->{multiarch}
97 App::Packer::PAR->new(
98 frontend => 'Module::ScanDeps',
99 backend => 'PAR::Packer',
102 args => ['par_test.pl'],
104 open STDERR, '>&', $olderr;
113 Sebastian Riedel, C<sri@oook.de>
117 This library is free software, you can redistribute it and/or modify it under
118 the same terms as Perl itself.