use warnings;
use Cwd qw/abs_path/;
-use File::Copy qw/copy/;
-use File::Path qw/mkpath/;
-use File::Spec::Functions qw/catdir catfile/;
+use File::Copy ();
+use File::Path ();
+use File::Spec;
use IPC::Cmd qw/run can_run/;
=head1 VERSION
-Version 0.05
+Version 0.07
=cut
-our $VERSION = '0.05';
+our $VERSION = '0.07';
=head1 SYNOPSIS
my %forced;
-sub _unquote {
+my $unquote = sub {
my $s = shift;
$s =~ s/^["']*//;
$s =~ s/["']*$//;
return $s;
-}
+};
my $format_available;
}
if (IPC::Cmd->can_capture_buffer) {
- my ($success, $errmsg, $output) = run command => [ qw/emerge --info/ ],
- verbose => 0;
+ my $buffers;
+ my ($success, $errmsg) = run command => [ qw/emerge --info/ ],
+ verbose => 0,
+ buffer => \$buffers;
if ($success) {
- for (@{$output || []}) {
- if (/^PORTDIR_OVERLAY=(.*)$/m) {
- $overlays = [ map abs_path($_), split ' ', _unquote($1) ];
- }
- if (/^ACCEPT_KEYWORDS=(.*)$/m) {
- $default_keywords = [ split ' ', _unquote($1) ];
- }
- if (/^DISTDIR=(.*)$/m) {
- $default_distdir = abs_path(_unquote($1));
- }
- if (/^PORTDIR=(.*)$/m) {
- $main_portdir = abs_path(_unquote($1));
- }
+ if ($buffers =~ /^PORTDIR_OVERLAY=(.*)$/m) {
+ $overlays = [ map abs_path($_), split ' ', $unquote->($1) ];
+ }
+ if ($buffers =~ /^ACCEPT_KEYWORDS=(.*)$/m) {
+ $default_keywords = [ split ' ', $unquote->($1) ];
+ }
+ if ($buffers =~ /^DISTDIR=(.*)$/m) {
+ $default_distdir = abs_path($unquote->($1));
+ }
+ if ($buffers =~ /^PORTDIR=(.*)$/m) {
+ $main_portdir = abs_path($unquote->($1));
}
} else {
error $errmsg;
}
$stat->fetched_arch($mod->status->fetch);
- my $cur = File::Spec::Functions::curdir();
+ my $cur = File::Spec->curdir();
my $portdir_overlay;
for (@$overlays) {
- if ($_ eq $overlay or File::Spec::Functions::abs2rel($overlay, $_) eq $cur) {
+ if ($_ eq $overlay or File::Spec->abs2rel($overlay, $_) eq $cur) {
$portdir_overlay = [ @$overlays ];
last;
}
$stat->eb_name(CPANPLUS::Dist::Gentoo::Maps::name_c2g($name));
- $stat->eb_dir(catdir($stat->overlay, CATEGORY, $stat->eb_name));
+ $stat->eb_dir(File::Spec->catdir(
+ $stat->overlay,
+ CATEGORY,
+ $stat->eb_name,
+ ));
- my $file = catfile($stat->eb_dir,
- $stat->eb_name . '-' . $stat->eb_version . '.ebuild');
+ my $file = File::Spec->catfile(
+ $stat->eb_dir,
+ $stat->eb_name . '-' . $stat->eb_version . '.ebuild',
+ );
$stat->eb_file($file);
if (-e $file) {
my $dir = $stat->eb_dir;
unless (-d $dir) {
- eval { mkpath $dir };
+ eval { File::Path::mkpath($dir) };
if ($@) {
error "mkpath($dir): $@";
return 0;
$stat->dist(undef);
if ($stat->do_manifest) {
- unless (copy $stat->fetched_arch, $stat->distdir) {
+ unless (File::Copy::copy($stat->fetched_arch => $stat->distdir)) {
error "Couldn\'t copy the distribution file to distdir ($!) -- aborting";
1 while unlink $file;
return 0;
my $atom = ($category eq 'virtual' ? 'perl-' : '') . $name;
for my $portdir (@portdirs) {
- my @ebuilds = glob catfile($portdir, $category, $atom,"$atom-*.ebuild");
- next unless @ebuilds;
+ my @ebuilds = glob File::Spec->catfile(
+ $portdir,
+ $category,
+ $atom,
+ "$atom-*.ebuild",
+ ) or next;
if (defined $ver) { # implies that $version is defined
for (@ebuilds) {
unless ($success) {
error "$errmsg -- aborting";
- if (not $verbose and defined $output and $self->status->verbose) {
+ if (not $verbose and defined $output and $stat->verbose) {
my $msg = join '', @$output;
1 while chomp $msg;
error $msg;
L<CPANPLUS>, L<IPC::Cmd> (core modules since 5.9.5).
-L<Cwd>, L<Carp> (since perl 5), L<File::Path> (5.001), L<File::Copy> (5.002), L<File::Spec::Functions> (5.00504).
+L<Cwd>, L<Carp> (since perl 5), L<File::Path> (5.001), L<File::Copy> (5.002), L<File::Spec> (5.00405).
=head1 SEE ALSO