X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FCPANPLUS%2FDist%2FGentoo.pm;h=f176c9667b51ce7787f0ae84076544f5e5402b1d;hb=d63bf47c6fc9cbc563e73e53393f052c034e0580;hp=bcdc7282fb46c5267aba7b4ca37c8ad18cee84e9;hpb=94d4cd2d24e105bf0d2c8117e2b5d469ccd13581;p=perl%2Fmodules%2FCPANPLUS-Dist-Gentoo.git diff --git a/lib/CPANPLUS/Dist/Gentoo.pm b/lib/CPANPLUS/Dist/Gentoo.pm index bcdc728..f176c96 100644 --- a/lib/CPANPLUS/Dist/Gentoo.pm +++ b/lib/CPANPLUS/Dist/Gentoo.pm @@ -57,6 +57,14 @@ use constant CATEGORY => 'perl-gcpanp'; my $overlays; my $default_keywords; +my $default_distdir; + +sub _unquote { + my $s = shift; + $s =~ s/^["']*//; + $s =~ s/["']*$//; + return $s; +} sub format_available { for my $prog (qw/emerge ebuild/) { @@ -72,16 +80,13 @@ sub format_available { if ($success) { for (@{$output || []}) { if (/^PORTDIR_OVERLAY=(.*)$/m) { - my $o = $1; - $o =~ s/^["']*//; - $o =~ s/["']*$//; - $overlays = [ map abs_path($_), grep length, split /:/, $o ]; + $overlays = [ map abs_path($_), split ' ', _unquote($1) ]; } if (/^ACCEPT_KEYWORDS=(.*)$/m) { - my $k = $1; - $k =~ s/^["']*//; - $k =~ s/["']*$//; - $default_keywords = [ split ' ', $k ]; + $default_keywords = [ split ' ', _unquote($1) ]; + } + if (/^DISTDIR=(.*)$/m) { + $default_distdir = abs_path(_unquote($1)); } } } else { @@ -90,6 +95,7 @@ sub format_available { } $default_keywords = [ 'x86' ] unless defined $default_keywords; + $default_distdir = '/usr/portage/distfiles' unless defined $default_distdir; return 1; } @@ -231,7 +237,7 @@ sub prepare { $stat->overlay($overlay); my $distdir = delete $opts{'distdir'}; - $distdir = (defined $distdir) ? abs_path $distdir : '/usr/portage/distfiles'; + $distdir = (defined $distdir) ? abs_path $distdir : $default_distdir; $stat->distdir($distdir); if ($stat->do_manifest && !-w $stat->distdir) { @@ -244,11 +250,11 @@ sub prepare { my $portdir_overlay; for (@$overlays) { if ($_ eq $overlay or File::Spec::Functions::abs2rel($overlay, $_) eq $cur) { - $portdir_overlay = join ':', @$overlays; + $portdir_overlay = join ' ', @$overlays; last; } } - $portdir_overlay = join ':', @$overlays, $overlay + $portdir_overlay = join ' ', @$overlays, $overlay unless defined $portdir_overlay; $stat->portdir_overlay($portdir_overlay);