Put some of the mod_perl code back. This is pretty much untested and won't work,...
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Engine / Loader.pm
1 package Catalyst::Engine::Loader;
2 use Moose;
3 use Catalyst::Exception;
4 use namespace::autoclean;
5
6 extends 'Plack::Loader';
7
8 around guess => sub {
9     my ($orig, $self) = (shift, shift);
10     my $engine = $self->$orig(@_);
11     if ($engine eq 'Standalone') {
12         if ( $ENV{MOD_PERL} ) {
13             my ( $software, $version ) =
14                 $ENV{MOD_PERL} =~ /^(\S+)\/(\d+(?:[\.\_]\d+)+)/;
15
16             $version =~ s/_//g;
17             if ( $software eq 'mod_perl' ) {
18                 if ( $version >= 1.99922 ) {
19                     $engine = 'Apache2';
20                 }
21
22                 elsif ( $version >= 1.9901 ) {
23                     Catalyst::Exception->throw( message => 'Plack does not have a mod_perl 1.99 handler' );
24                     $engine = 'Apache2::MP19';
25                 }
26
27                 elsif ( $version >= 1.24 ) {
28                     $engine = 'Apache1';
29                 }
30
31                 else {
32                     Catalyst::Exception->throw( message =>
33                           qq/Unsupported mod_perl version: $ENV{MOD_PERL}/ );
34                 }
35             }
36         }
37     }
38     return $engine;
39 };
40
41 __PACKAGE__->meta->make_immutable( inline_constructor => 0 );
42 1;