]> git.vpit.fr Git - perl/modules/CPANPLUS-Dist-Gentoo.git/commitdiff
Put the update Manifest logic into its own update_manifest() method
authorVincent Pit <vince@profvince.com>
Sun, 16 Aug 2009 15:39:11 +0000 (17:39 +0200)
committerVincent Pit <vince@profvince.com>
Sun, 16 Aug 2009 15:39:11 +0000 (17:39 +0200)
lib/CPANPLUS/Dist/Gentoo.pm

index 7fab73a43b693e5817857f0261481292115a6669..d5d87c43c0f63322a4fec4c88beca8247677e624 100644 (file)
@@ -348,23 +348,39 @@ sub create {
 
  $self->SUPER::create(@_);
 
- if ($stat->do_manifest) {
-  unless (File::Copy::copy($stat->fetched_arch => $stat->distdir)) {
-   error "Couldn\'t copy the distribution file to distdir ($!) -- aborting";
-   1 while unlink $file;
-   return $FAIL->();
-  }
-
-  msg 'Adding Manifest entry for ' . $stat->distribution;
-  unless ($self->_run([ 'ebuild', $file, 'manifest' ], 0)) {
-   1 while unlink $file;
-   return $FAIL->();
-  }
+ if ($stat->do_manifest and not $self->update_manifest) {
+  1 while unlink $file;
+  return $FAIL->();
  }
 
  return $OK->();
 }
 
+=head2 C<update_manifest>
+
+Update the F<Manifest> file for the ebuild associated to the current dist object.
+
+=cut
+
+sub update_manifest {
+ my $self = shift;
+ my $stat = $self->status;
+
+ my $file = $stat->eb_file;
+ unless ($file and -e $file) {
+  error 'The ebuild file is invalid or does not exist -- aborting';
+  return 0;
+ }
+
+ unless (File::Copy::copy($stat->fetched_arch => $stat->distdir)) {
+  error "Couldn\'t copy the distribution file to distdir ($!) -- aborting";
+  return 0;
+ }
+
+ msg 'Adding Manifest entry for ' . $stat->distribution;
+ return $self->_run([ 'ebuild', $stat->eb_file, 'manifest' ], 0);
+}
+
 sub _cpan2portage {
  my ($self, $name, $version) = @_;