X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=script%2Fenv;h=cfa74933fea5a262c3a5155476eaccbec2eedf52;hb=bc33a9b1ad2ff2573fb6b2cb5184cefa002f5354;hp=7f9699130726cb49534c9963b0f7cdb930096c43;hpb=f9a3c4ab6a0f227144b5e46ee5ee80d49ce8d738;p=catagits%2FGitalist.git diff --git a/script/env b/script/env index 7f96991..cfa7493 100755 --- a/script/env +++ b/script/env @@ -30,14 +30,25 @@ use warnings; use Carp; use lib; use FindBin; +use File::Spec (); -my $basedir; -if (-r "$FindBin::Bin/Makefile.PL") { - $basedir = $FindBin::Bin; -} -elsif (-r "$FindBin::Bin/../Makefile.PL") { - $basedir = "$FindBin::Bin/.."; -} +# Look up to see find Makefile.PL aka the base of the local::lib install. +my $lookup; $lookup = sub { + my $dir = $_[0] || '.'; + + my(undef, $dirbit) = File::Spec->splitpath($FindBin::Bin); + my $trydir = File::Spec->catdir($dirbit, $dir); + + return '' unless -d $trydir; + + my $tryfile = File::Spec->catfile($trydir, "Makefile.PL"); + + return $trydir if -r $tryfile; + + return $lookup->( File::Spec->catdir($dir, File::Spec->updir) ); +}; + +my $basedir = $lookup->(); $basedir ||= ''; my $target = "$basedir/local-lib5";