]> git.vpit.fr Git - perl/modules/CPANPLUS-Dist-Gentoo.git/blobdiff - lib/CPANPLUS/Dist/Gentoo.pm
Check the portage tree timestamp at initialization time
[perl/modules/CPANPLUS-Dist-Gentoo.git] / lib / CPANPLUS / Dist / Gentoo.pm
index fb54d76303c0e2d8444697a792f05c0bed49fa76..ad4d10828603d628508d14cb035c0d4948672d78 100644 (file)
@@ -8,6 +8,7 @@ use List::Util qw<reduce>;
 use File::Copy ();
 use File::Path ();
 use File::Spec;
 use File::Copy ();
 use File::Path ();
 use File::Spec;
+use POSIX      ();
 
 use IPC::Cmd          ();
 use Parse::CPAN::Meta ();
 
 use IPC::Cmd          ();
 use Parse::CPAN::Meta ();
@@ -269,6 +270,20 @@ sub format_available {
  $default_keywords = [ 'x86' ] unless defined $default_keywords;
  $default_distdir  = '/usr/portage/distfiles' unless defined $default_distdir;
 
  $default_keywords = [ 'x86' ] unless defined $default_keywords;
  $default_distdir  = '/usr/portage/distfiles' unless defined $default_distdir;
 
+ my $timestamp = CPANPLUS::Dist::Gentoo::Maps::get_portage_timestamp(
+  $main_portdir
+ );
+ if (defined $timestamp) {
+  __PACKAGE__->_notify("Portage tree $main_portdir dates back from UNIX timestamp $timestamp");
+ } else {
+  __PACKAGE__->_notify("Unable to get timestamp for portage tree $main_portdir, using gmtime instead");
+  $timestamp = POSIX::mktime(gmtime);
+ }
+ if ($timestamp < CPANPLUS::Dist::Gentoo::Maps::TIMESTAMP) {
+  __PACKAGE__->_abort("Portage tree too old (please run emerge --sync and retry)");
+  return $format_available = 0;
+ }
+
  return $format_available = 1;
 }
 
  return $format_available = 1;
 }