X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=script%2Fenv;h=82565417fb1aa4f390d0d3ab5214a7376bc3621f;hb=0c3a1f2ba836df0e4eedadce5c2f7f2749ca5604;hp=7f9699130726cb49534c9963b0f7cdb930096c43;hpb=9992168adc7bb4e49d25d6b46517e6f0694dbaf1;p=catagits%2FGitalist.git diff --git a/script/env b/script/env index 7f96991..8256541 100755 --- a/script/env +++ b/script/env @@ -30,14 +30,21 @@ use warnings; use Carp; use lib; use FindBin; +use File::Spec (); +use Cwd (); -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] || $FindBin::Bin; + + return '' if Cwd::abs_path($dir) eq File::Spec->rootdir; + + my $tryfile = File::Spec->catfile($dir, "Makefile.PL"); + + return -r $tryfile ? $dir : $lookup->( File::Spec->catdir($dir, File::Spec->updir) ); +}; + +my $basedir = $lookup->(); $basedir ||= ''; my $target = "$basedir/local-lib5";