X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FController%2FCGIBin.pm;h=20755aa430a18584bdeeda314183b075232d5543;hb=d501f45e86dabe1c138f0c145f955607e7f2a488;hp=06e6de73d6c70e0ad9800280af4fd3f4c8776df2;hpb=05f3f060f92985dd99c3e4a4577aa3284efca2fe;p=catagits%2FCatalyst-Controller-WrapCGI.git diff --git a/lib/Catalyst/Controller/CGIBin.pm b/lib/Catalyst/Controller/CGIBin.pm index 06e6de7..20755aa 100644 --- a/lib/Catalyst/Controller/CGIBin.pm +++ b/lib/Catalyst/Controller/CGIBin.pm @@ -6,7 +6,6 @@ use mro 'c3'; extends 'Catalyst::Controller::WrapCGI'; use File::Find::Rule (); -use Catalyst::Exception (); use File::Spec::Functions qw/splitdir abs2rel/; use IPC::Open3; use Symbol 'gensym'; @@ -24,7 +23,7 @@ Catalyst::Controller::CGIBin - Serve CGIs from root/cgi-bin =cut -our $VERSION = '0.029'; +our $VERSION = '0.030'; =head1 SYNOPSIS @@ -105,9 +104,14 @@ has cgi_file_pattern => (is => 'rw', default => sub { ['*'] }); sub register_actions { my ($self, $app) = @_; - my $cgi_bin = File::Spec->file_name_is_absolute($self->cgi_dir) ? - $self->cgi_dir - : $app->path_to('root', $self->cgi_dir); + my $cgi_bin; + if( File::Spec->file_name_is_absolute($self->cgi_dir) ) { + $cgi_bin = $self->cgi_dir; + } elsif( File::Spec->file_name_is_absolute( $app->config->{root} ) ) { + $cgi_bin = File::Spec->catdir( $app->config->{root}, $self->cgi_dir ); + } else { + $cgi_bin = $app->path_to( $app->config->{root}, $self->cgi_dir); + } my $namespace = $self->action_namespace($app);