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