X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FCPANPLUS%2FDist%2FGentoo.pm;h=34a27a092dbc2e52024af5b13098e22355b3cf21;hb=1b3ef6837ed5076bbf9b6ad7f3de2a02cdd4a977;hp=f68181943547ccc654ec6b60092be09d01f95a23;hpb=30ddec14603e1a68dcd144424cbfe04aa14fab5d;p=perl%2Fmodules%2FCPANPLUS-Dist-Gentoo.git diff --git a/lib/CPANPLUS/Dist/Gentoo.pm b/lib/CPANPLUS/Dist/Gentoo.pm index f681819..34a27a0 100644 --- a/lib/CPANPLUS/Dist/Gentoo.pm +++ b/lib/CPANPLUS/Dist/Gentoo.pm @@ -65,9 +65,14 @@ sub format_available { sub init { my ($self) = @_; my $stat = $self->status; + my $conf = $self->parent->parent->configure_object; + $stat->mk_accessors(qw/name version dist desc uri src license deps eb_name eb_version eb_dir eb_file distdir fetched_arch - keywords do_manifest/); + keywords do_manifest + verbose/); + + $stat->verbose($conf->get_conf('verbose')); return 1; } @@ -147,6 +152,7 @@ sub prepare { $stat->license([ qw/Artistic GPL-2/ ]); my $prereqs = $mod->status->prereqs; + $prereqs = { map { ($gentooism{$_} || $_) => $prereqs->{$_} } keys %$prereqs }; my @depends; for my $prereq (sort keys %$prereqs) { next if $prereq =~ /^perl(?:-|\z)/; @@ -237,8 +243,16 @@ sub create { } msg 'Adding Manifest entry for ' . $stat->dist; - unless (scalar run command => [ 'ebuild', $file, 'manifest' ], verbose => 0) { - error 'ebuild manifest failed -- aborting'; + my ($success, $errmsg, $output) = run + command => [ 'ebuild', $file, 'manifest' ], + verbose => 0; + unless ($success) { + error "$errmsg -- aborting"; + if (defined $output and $stat->verbose) { + my $msg = join '', @$output; + 1 while chomp $msg; + error $msg; + } 1 while unlink $file; return 0; } @@ -256,8 +270,10 @@ sub install { my @cmd = ('emerge', '=' . $stat->eb_name . '-' . $stat->eb_version); unshift @cmd, $sudo if $sudo; - unless (run command => \@cmd, verbose => 1) { - error 'emerge failed -- aborting'; + my ($success, $errmsg) = run command => \@cmd, + verbose => 1; + unless ($success) { + error "$errmsg -- aborting"; return 0; } @@ -273,8 +289,10 @@ sub uninstall { my @cmd = ('emerge', '-C', '=' . $stat->eb_name . '-' . $stat->eb_version); unshift @cmd, $sudo if $sudo; - unless (run command => \@cmd, verbose => 1) { - error 'emerge -C failed -- aborting'; + my ($success, $errmsg) = run command => \@cmd, + verbose => 1; + unless ($success) { + error "$errmsg -- aborting"; return 0; }