my $stat = $self->status;
my $conf = $self->parent->parent->configure_object;
- $stat->mk_accessors(qw/name version author dist desc uri src license deps
- eb_name eb_version eb_dir eb_file fetched_arch
+ $stat->mk_accessors(qw/name version author distribution desc uri src license
+ deps eb_name eb_version eb_dir eb_file fetched_arch
overlay distdir keywords do_manifest header footer
force verbose/);
}
my %gentooism = (
+ 'Crypt-RSA' => 'crypt-rsa',
'Digest' => 'digest-base',
'Locale-Maketext' => 'locale-maketext',
+ 'Math-Pari' => 'math-pari',
'Net-Ping' => 'net-ping',
'PathTools' => 'File-Spec',
'PodParser' => 'Pod-Parser',
'Set-Scalar' => 'set-scalar',
'Tie-EncryptedHash' => 'tie-encryptedhash',
+ 'YAML' => 'yaml',
);
sub prepare {
my %opts = @_;
+ $stat->prepared(0);
+
my $keywords = delete $opts{'keywords'};
$keywords = 'x86' unless defined $keywords;
$keywords = [ split ' ', $keywords ];
my $author = $mod->author->cpanid;
$stat->author($author);
- $stat->dist($name . '-' . $version);
+ $stat->distribution($name . '-' . $version);
$version =~ s/[^\d._]+//g;
$version =~ s/^[._]*//;
error "Can't force rewriting of $file -- skipping";
}
} else {
- msg 'Ebuild already generated for ' . $stat->dist . ' -- skipping';
+ msg 'Ebuild already generated for ' . $stat->distribution . ' -- skipping';
}
if ($skip) {
$stat->prepared(1);
$stat->created(1);
+ $stat->dist($file);
return 1;
}
}
$self->SUPER::prepare(%opts);
+ $stat->prepared(0);
+
my $desc = $mod->description;
($desc = $name) =~ s/-+/::/g unless $desc;
$stat->desc($desc);
$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)/;
}
$stat->deps(\@depends);
+ $stat->prepared(1);
return 1;
}
my $stat = $self->status;
unless ($stat->prepared) {
- error 'Can\'t create ' . $stat->dist . ' since it was never prepared -- aborting';
+ error 'Can\'t create ' . $stat->distribution . ' since it was never prepared -- aborting';
+ $stat->created(0);
+ $stat->dist(undef);
return 0;
}
if ($stat->created) {
- msg $stat->dist . ' was already created -- skipping';
+ msg $stat->distribution . ' was already created -- skipping';
+ $stat->dist($stat->eb_file);
return 1;
}
+ $stat->created(0);
+ $stat->dist(undef);
+
$self->SUPER::create(@_);
+ $stat->created(0);
+ $stat->dist(undef);
+
my $dir = $stat->eb_dir;
unless (-d $dir) {
eval { mkpath $dir };
my $d = $stat->header;
$d .= "# Generated by CPANPLUS::Dist::Gentoo version $VERSION\n\n";
$d .= 'MODULE_AUTHOR="' . $stat->author . "\"\ninherit perl-module\n\n";
- $d .= 'S="${WORKDIR}/' . $stat->dist . "\"\n";
+ $d .= 'S="${WORKDIR}/' . $stat->distribution . "\"\n";
$d .= 'DESCRIPTION="' . $stat->desc . "\"\n";
$d .= 'HOMEPAGE="' . $stat->uri . "\"\n";
$d .= 'SRC_URI="' . $stat->src . "\"\n";
'dev-lang/perl',
map {
my $a = $_->[0]->package_name;
+ $a = $gentooism{$a} || $a;
my $x = '';
if (defined $_->[1]) {
$x = '>=';
return 0;
}
- msg 'Adding Manifest entry for ' . $stat->dist;
+ msg 'Adding Manifest entry for ' . $stat->distribution;
unless ($self->_run([ 'ebuild', $file, 'manifest' ], 0)) {
1 while unlink $file;
return 0;
}
}
+ $stat->created(1);
+ $stat->dist($file);
return 1;
}
my @cmd = ('emerge', '=' . $stat->eb_name . '-' . $stat->eb_version);
unshift @cmd, $sudo if $sudo;
- return $self->_run(\@cmd, 1);
+ my $success = $self->_run(\@cmd, 1);
+ $stat->installed($success);
+
+ return $success;
}
sub uninstall {
my @cmd = ('emerge', '-C', '=' . $stat->eb_name . '-' . $stat->eb_version);
unshift @cmd, $sudo if $sudo;
- return $self->_run(\@cmd, 1);
+ my $success = $self->_run(\@cmd, 1);
+ $stat->uninstalled($success);
+
+ return $success;
}
sub _run {