X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FUtils.pm;fp=lib%2FCatalyst%2FUtils.pm;h=6b8d4822d332fb849fe2db126edbd5824edb81d2;hb=f7ac80efdfe4ef8e676df86d3b3a967d509ecb7f;hp=7bdbca037087aadc71336c0194c2b5ff63c2c00a;hpb=122020c4bccf3c81c605e5f949acd5bd4fd63c59;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Utils.pm b/lib/Catalyst/Utils.pm index 7bdbca0..6b8d482 100644 --- a/lib/Catalyst/Utils.pm +++ b/lib/Catalyst/Utils.pm @@ -6,7 +6,7 @@ use HTTP::Request; use Path::Class; use URI; use Carp qw/croak/; -use Cwd; +use FindBin qw/ $Bin /; use Class::MOP; use String::RewritePrefix; use List::MoreUtils qw/ any /; @@ -162,7 +162,7 @@ Returns a list of files which can be tested to check if you're inside a checkout =cut sub dist_indicator_file_list { - qw/ Makefile.PL Build.PL dist.init /; + qw/ Makefile.PL Build.PL dist.ini /; } =head2 home($class) @@ -207,8 +207,8 @@ sub home { =head2 find_home_unloaded_in_checkout ($path) -Tries to determine if C<$path> (or the current directory if not supplied) -looks like a checkout. Any leading lib or blib components +Tries to determine if C<$path> (or $FindBin::Bin if not supplied) +looks like a checkout. Any leading lib, script or blib components will be removed, then the directory produced will be checked for the existence of a C<< dist_indicator_file_list() >>. @@ -218,11 +218,13 @@ If one is found, the directory will be returned, otherwise false. sub find_home_unloaded_in_checkout { my ($path) = @_; - $path ||= cwd() if !defined $path || !length $path; + $path ||= $Bin if !defined $path || !length $path; my $home = dir($path)->absolute->cleanup; # pop off /lib and /blib if they're there $home = $home->parent while $home =~ /b?lib$/; + # pop off /script if it's there. + $home = $home->parent while $home =~ /b?script$/; # only return the dir if it has a Makefile.PL or Build.PL or dist.ini if (any { $_ } map { -f $home->file($_) } dist_indicator_file_list()) {