=head1 VERSION
-Version 0.04
+Version 0.05
=cut
-our $VERSION = '0.04';
+our $VERSION = '0.05';
=head1 SYNOPSIS
my $default_distdir;
my $main_portdir;
+my %forced;
+
sub _unquote {
my $s = shift;
$s =~ s/^["']*//;
return $s;
}
+my $format_available;
+
sub format_available {
+ return $format_available if defined $format_available;
+
for my $prog (qw/emerge ebuild/) {
unless (can_run($prog)) {
error "$prog is required to write ebuilds -- aborting";
- return 0;
+ return $format_available = 0;
}
}
$default_keywords = [ 'x86' ] unless defined $default_keywords;
$default_distdir = '/usr/portage/distfiles' unless defined $default_distdir;
- return 1;
+ return $format_available = 1;
}
sub init {
if (-e $file) {
my $skip = 1;
- if ($stat->force) {
+ if ($stat->force and not $forced{$file}) {
if (-w $file) {
1 while unlink $file;
+ $forced{$file} = 1;
$skip = 0;
} else {
error "Can't force rewriting of $file -- skipping";
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 %seen;
+
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 .= 'LICENSE="|| ( ' . join(' ', sort @{$stat->license}) . " )\"\n";
$d .= 'KEYWORDS="' . join(' ', sort @{$stat->keywords}) . "\"\n";
$d .= 'DEPEND="' . join("\n",
- 'dev-lang/perl',
- map $self->_cpan2portage(@$_), @{$stat->deps}
+ sort grep !$seen{$_}++, 'dev-lang/perl',
+ map $self->_cpan2portage(@$_), @{$stat->deps}
) . "\"\n";
$d .= "SRC_TEST=\"do\"\n";
$d .= $stat->footer;
print $eb $d;
close $eb;
+ $stat->created(0);
+ $stat->dist(undef);
+
+ $self->SUPER::create(@_);
+
+ $stat->created(0);
+ $stat->dist(undef);
+
if ($stat->do_manifest) {
unless (copy $stat->fetched_arch, $stat->distdir) {
error "Couldn\'t copy the distribution file to distdir ($!) -- aborting";
=head1 COPYRIGHT & LICENSE
-Copyright 2008 Vincent Pit, all rights reserved.
+Copyright 2008-2009 Vincent Pit, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.