]> git.vpit.fr Git - perl/modules/CPANPLUS-Dist-Gentoo.git/commitdiff
--force should regenerate ebuilds when possible
authorVincent Pit <vince@profvince.com>
Sat, 29 Nov 2008 17:55:59 +0000 (18:55 +0100)
committerVincent Pit <vince@profvince.com>
Sat, 29 Nov 2008 17:55:59 +0000 (18:55 +0100)
lib/CPANPLUS/Dist/Gentoo.pm

index 786308b02d85cf37556fd557066db91377d01aac..54ccae0767ba1f67c110d4f3d669f38f2ccf15b0 100644 (file)
@@ -131,13 +131,28 @@ sub prepare {
 
  $stat->eb_name($gentooism{$stat->name} || $stat->name);
  $stat->eb_dir(catdir($overlay, $stat->eb_name));
- $stat->eb_file(catfile($stat->eb_dir,
-                        $stat->eb_name . '-' . $stat->eb_version . '.ebuild'));
- if (-r $stat->eb_file) {
-  msg 'Ebuild already generated for ' . $stat->dist . ' -- skipping';
-  $stat->prepared(1);
-  $stat->created(1);
-  return 1;
+
+ my $file = catfile($stat->eb_dir,
+                    $stat->eb_name . '-' . $stat->eb_version . '.ebuild');
+ $stat->eb_file($file);
+
+ if (-e $file) {
+  my $skip = 1;
+  if ($stat->force) {
+   if (-w $file) {
+    1 while unlink $file;
+    $skip = 0;
+   } else {
+    error "Can't force rewriting of $file -- skipping";
+   }
+  } else {
+   msg 'Ebuild already generated for ' . $stat->dist . ' -- skipping';
+  }
+  if ($skip) {
+   $stat->prepared(1);
+   $stat->created(1);
+   return 1;
+  }
  }
 
  $self->SUPER::prepare(%opts);