[Collab-qa-commits] r573 - svnbuildstat/trunk/script
goneri-guest at alioth.debian.org
goneri-guest at alioth.debian.org
Wed Dec 12 16:58:52 UTC 2007
Author: goneri-guest
Date: 2007-12-12 16:58:52 +0000 (Wed, 12 Dec 2007)
New Revision: 573
Modified:
svnbuildstat/trunk/script/svnbuildstat_update-repository.pl
Log:
new revision
Modified: svnbuildstat/trunk/script/svnbuildstat_update-repository.pl
===================================================================
--- svnbuildstat/trunk/script/svnbuildstat_update-repository.pl 2007-12-12 16:57:58 UTC (rev 572)
+++ svnbuildstat/trunk/script/svnbuildstat_update-repository.pl 2007-12-12 16:58:52 UTC (rev 573)
@@ -1,7 +1,6 @@
#!/usr/bin/perl -w
use strict;
-#chdir "/home/sites/nana.rulezlan.org/debian/" or die;
use LWP::Simple;
use File::Basename;
@@ -10,6 +9,7 @@
use File::Touch;
use File::Copy;
use File::stat;
+use Config::IniFiles;
use lib '/home/sites/svnbuildstat.debian.net/svnbuildstat/lib';
use SvnBuildStat::Schema;
use SvnBuildStat::Config;
@@ -17,8 +17,13 @@
use Logger::Syslog;
use SvnBuildStat::Vcs;
-my $debmirror = "http://ftp.debian.org";
-my $config;
+my $cfg = Config::IniFiles->new( -file => "../svnbuildstat.ini" ) or die "Can't load config file";
+
+my $debmirror = $cfg->val('path', 'debmirror');
+my $repositorydir = $cfg->val('path', 'repositorydir');
+chdir $repositorydir or die;
+
+
my $schema;
sub addSubRevInChangelog {
@@ -51,17 +56,19 @@
# TODO Will always fails because I should check the
# package repository directly
if (!-f "$workdir/$tarball") {
- debug("the tarball is needed");
my $tarballuri = $$repositoryentry->tarballuri;
- return unless $tarballuri;
+ if (!$tarballuri) {
+ debug("can't find the tarball");
+ return;
+ }
$tarballuri =~ s/\@DEBMIRROR@/$debmirror/;
if (is_error(getstore($tarballuri,"$workdir/$tarball"))) {
+ debug ("Failed to download the tarball");
# debug("failed to download ".$tarballuri);
return;
}
}
-
chdir $workdir or die;
my $rootdirectory;
foreach (`tar tf $tarball 2>&1`) {
@@ -92,45 +99,42 @@
my ($repositoryentry) = @_;
debug("prepareFromSvn: ".$$repositoryentry->sourcepackage_id->name);
+ my $vcscache = $cfg->val('path', 'vcscache');
+ my $localdir = $vcscache.'/'.$$repositoryentry->repository_id->id.$$repositoryentry->subdir;
my $vcsname = $$repositoryentry->repository_id->vcs_id->name;
- my $vcs = new SvnBuildStat::Vcs($vcsname, $$repositoryentry->vcsuri);
+ my $vcs = new SvnBuildStat::Vcs({
+ vcstype => $$repositoryentry->repository_id->vcs_id->name,
+ localdir => $localdir,
+ });
+
+
my $repo_shortname = $$repositoryentry->repository_id->shortname;
- next unless $repo_shortname;
-
my $directory = $$repositoryentry->sourcepackage_id->name;
# TODO replace repo_shortname/ by team short name
#my $workdir = $config->server_repositorydir."/$repo_shortname/".$$package->name."/tmp";
- my $workdir = $config->server_repositorydir."/tmp";
+ my $workdir = $repositorydir."/tmp";
`rm -Rf $workdir; mkdir -p $workdir`;
chdir $workdir or die;
-
if (!$$repositoryentry->isnative) {
return unless fetchAndPrepareDirectoryForMergeWithUpstream($repositoryentry, $workdir);
}
- print "cc\n";
my $packagerootdir = SvnBuildStat::Common::mkRootdirectoryFromRepositoryentry($repositoryentry);
- my $vcsrev = $vcs->exportIn($workdir."/".$packagerootdir);
- if (!$vcsrev) {
- info("failed to export from vcs ".$$repositoryentry->vcsuri);
- return;
- }
+ my $vcsrev = $vcs->currentRev;
+ $vcs->exportIn($workdir."/".$packagerootdir);
return unless addSubRevInChangelog($packagerootdir, $vcsname.$vcsrev);
- if ($$repositoryentry->vcsrev && $$repositoryentry->vcsrev ne $vcsrev) {
- #TODO: We're preparing a package that is not up to date in the DB. We should
- # call an update DB here.
- }
- print `dpkg-source -b -W $packagerootdir 2>&1`;
+ `dpkg-source -b -W $packagerootdir 2>&1`;
if (($? >> 8)!=0) {
info ("failed to create .dsc");
return;
}
- my $destdir = $config->server_repositorydir.'/'.
+
+ my $destdir = $repositorydir.'/'.
$$repositoryentry->repository_id->team_id->shortname.'/'.
$$repositoryentry->sourcepackage_id->name;
`mkdir -p $destdir` unless -d $destdir;
@@ -169,21 +173,19 @@
touch "lock.$$";
info ("starting");
-
-$config = new SvnBuildStat::Config();
$schema = SvnBuildStat::Schema->connect(
- $config->db_dsn,
- $config->db_user,
- $config->db_password,
+ $cfg->val('db', 'dsn'),
+ $cfg->val('db', 'user'),
+ $cfg->val('db', 'password'),
{AutoCommit => 1, debug => 1}
);
# It's not a joke since I'll do rm -Rf in this directory and don't want to trash
# the system yet :)
-die "server_repository is unset!\n" unless $config->server_repositorydir;
+die "repositorydir doesn't exist!\n" unless -d $repositorydir;
#purgeOutDated();
-my $repositoryentry_rs = $schema->resultset('Repositoryentry')->search({ dscuri => undef });
+my $repositoryentry_rs = $schema->resultset('Repositoryentry')->search({ dscuri => undef, tarballuri => { '!=' => undef} });
while (my $repositoryentry = $repositoryentry_rs->next) {
prepare(\$repositoryentry);
}
More information about the Collab-qa-commits
mailing list