r3075 - people/goneri/SvnBuildStat-WWW/script

Gonéri Le Bouder goneri-guest at alioth.debian.org
Sun Jun 24 09:15:12 UTC 2007


Author: goneri-guest
Date: 2007-06-24 09:15:12 +0000 (Sun, 24 Jun 2007)
New Revision: 3075

Modified:
   people/goneri/SvnBuildStat-WWW/script/svnbuildstat_purge-buildinprogress.pl
Log:
purge the packages that are not in the repositorys anymore.
TODO, need to do the same with the maintainers


Modified: people/goneri/SvnBuildStat-WWW/script/svnbuildstat_purge-buildinprogress.pl
===================================================================
--- people/goneri/SvnBuildStat-WWW/script/svnbuildstat_purge-buildinprogress.pl	2007-06-23 15:27:00 UTC (rev 3074)
+++ people/goneri/SvnBuildStat-WWW/script/svnbuildstat_purge-buildinprogress.pl	2007-06-24 09:15:12 UTC (rev 3075)
@@ -1,12 +1,12 @@
 #!/usr/bin/perl -w
 use strict;
 
+use Time::Local;
+
 use lib '/home/sites/svnbuildstat.debian.net/svnbuildstat/lib';
 use SvnBuildStat::Schema;
 use SvnBuildStat::Config;
 
-
-
 my $config = new SvnBuildStat::Config();
 my $schema = SvnBuildStat::Schema->connect(
   $config->db_dsn,
@@ -14,8 +14,50 @@
   $config->db_password,
   {AutoCommit => 1, debug => 1}
 );
+sub postgresTimeToUnix {
+  my $time = shift;
+  if ( $time ) {
+    my ($year, $mon, $day, $hour, $min, $sec) = ($time =~ /(\d{4})-(\d{2})-(\d{2})\ (\d{1,2}):(\d{2}):(\d{2})/);
+    return timelocal($sec, $min, $hour, $day, $mon, $year);
+  }
+  0
+}
 
+sub purgePkg {
+  my $package = shift;
+  print "purge".$$package->name."\n";
 
+  $schema->resultset('Build')->search({package_id => $$package->id})->delete_all;
+  $schema->resultset('PackageMaintainer')->search({package_id => $$package->id})->delete_all;
+  $schema->resultset('Package')->search({id => $$package->id})->delete_all;
+}
 
+
 $schema->resultset('Build')->search({isbuildinprogress => 1})->delete_all;
 
+#my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time)
+# 2007-06-21 18:05:31.516643
+#my $time = "$year-$mon-$mday $hour-$min-$sec";
+
+my $repository_rs = $schema->resultset('Repository');
+while (my $repository = $repository_rs->next) {
+  print $repository->name."\n";
+
+  my $package_rs = $schema->resultset('Package')->search({repository_id => $repository->id});
+
+  while (my $package = $package_rs->next) {
+    if (postgresTimeToUnix($package->lastcheck) < postgresTimeToUnix($repository->lastcheck) - 3600 * 48) {
+      purgePkg(\$package);
+    }
+  }
+}
+#
+#while (my $package = $package_rs->next) {
+#  my $lastcheck = 0;
+#  if ( $package->lastcheck ) {
+#    my ($year, $mon, $day, $hour, $min, $sec) = ($package->lastcheck =~ /(\d{4})-(\d{2})-(\d{2})\ (\d{1,2}):(\d{2}):(\d{2})/);
+#    $lastcheck = timelocal($sec, $min, $hour, $day, $mon, $year);
+#  }
+#  print "removing ".$package->name."\n";
+#  $package->delete ({'cascade_delete' => 1});
+#}




More information about the Pkg-games-commits mailing list