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";