EDRUQ4UK643SUCYMMTS2JS4N3BHARLKRDWRH3QAYWDMWRAMPNAOQC 6ZSLRO7MT4LN4XVV3GK6NFUHEQP5LBU5CS3ZYIINOOO2MFPHFHSQC Y5DJHUBMLSYUBCN7HWFGARDK5ZLGMJJCD7I4VDTLASAKN3TZJIKQC V2MLUZRP7K4WGDM54U35F77ICGJMBHDET4SZUDMQNTYTAYKVBFWAC BMSQD2ZH3T37RNPRKKKNF5DTJEGBLY4YR2BZDKP7PXJGS3ZBBLWAC ARD6Z67TDHK2XMW47CSVOXXF327YGOMYK3EAXTSVVXNDAFQYNO5AC A22P7HCOGNO3XEQWBNEG2VHTGUB2GKQ75Q6JDMPQNQCLFHE7XBFAC OOQ2D3KCLFPYNAN253PHWLBQMB6OMO2KYQWQXLTP65SQAYZWQ5LAC FM4O2L4MNPCHWRDRHKGKSH5TFFX6R2RMCPEQ3XCECA6UVLJPLUVQC 3XTHEUMP2ZOMPQWE3S5QWHIHCEJNEXGDPQB3JUVZFPS3RFMY455QC # First figure out the last-modified revision of the URI.my @cmd = (["svn", "ls", "-v", "--depth", "empty", $uri],"|", ["sed", 's/^ *\([0-9]*\).*/\1/']);die "Cannot get head revision of Subversion repository at `$uri':\n$stderr"unless IPC::Run::run(@cmd, \$stdout, \$stderr);$revision = $stdout; chomp $revision;
# First figure out the last-modified revision of the URI.my @cmd = (["svn", "ls", "-v", "--depth", "empty", $uri],"|", ["sed", 's/^ *\([0-9]*\).*/\1/']);die "Cannot get head revision of Subversion repository at `$uri':\n$stderr"unless IPC::Run::run(@cmd, \$stdout, \$stderr);$revision = $stdout; chomp $revision;
# No, do a checkout. The working copy is reused between# invocations to speed things up.mkpath(scmPath . "/svn");my $wcPath = scmPath . "/svn" . sha256_hex($uri) . "/svn-checkout";
# No, do a checkout. The working copy is reused between# invocations to speed things up.mkpath(scmPath . "/svn");my $wcPath = scmPath . "/svn" . sha256_hex($uri) . "/svn-checkout";
if ($checkout) {$storePath = addToStore($wcPath, 1, "sha256");} else {# Hm, if the Nix Perl bindings supported filters in# addToStore(), then we wouldn't need to make a copy here.my $tmpDir = File::Temp->newdir("hydra-svn-export.XXXXXX", CLEANUP => 1, TMPDIR => 1) or die;(system "svn", "export", $wcPath, "$tmpDir/svn-export", "--quiet") == 0 or die "svn export failed";$storePath = addToStore("$tmpDir/svn-export", 1, "sha256");}
if ($checkout) {$storePath = addToStore($wcPath, 1, "sha256");} else {# Hm, if the Nix Perl bindings supported filters in# addToStore(), then we wouldn't need to make a copy here.my $tmpDir = File::Temp->newdir("hydra-svn-export.XXXXXX", CLEANUP => 1, TMPDIR => 1) or die;(system "svn", "export", $wcPath, "$tmpDir/svn-export", "--quiet") == 0 or die "svn export failed";$storePath = addToStore("$tmpDir/svn-export", 1, "sha256");}
# This is a TopGit branch. Fetch all the topic branches so# that builders can run "tg patch" and similar.(my $res, $stdout, $stderr) = captureStdoutStderr(600,("tg", "remote", "--populate", "origin"));
# This is a TopGit branch. Fetch all the topic branches so# that builders can run "tg patch" and similar.(my $res, $stdout, $stderr) = captureStdoutStderr(600,("tg", "remote", "--populate", "origin"));
open LIST, "$outPath/nix-support/hydra-build-products" or die;while (<LIST>) {/^([\w\-]+)\s+([\w\-]+)\s+(\S+)(\s+(\S+))?$/ or next;my $type = $1;my $subtype = $2 eq "none" ? "" : $2;my $path = $3;my $defaultPath = $5;next unless -e $path;
open LIST, "$outPath/nix-support/hydra-build-products" or die;while (<LIST>) {/^([\w\-]+)\s+([\w\-]+)\s+(\S+)(\s+(\S+))?$/ or next;my $type = $1;my $subtype = $2 eq "none" ? "" : $2;my $path = $3;my $defaultPath = $5;next unless -e $path;
$sha1 = `nix-hash --flat --type sha1 $path`or die "cannot hash $path: $?";;chomp $sha1;$sha256 = `nix-hash --flat --type sha256 $path`or die "cannot hash $path: $?";;chomp $sha256;}
$sha1 = `nix-hash --flat --type sha1 $path`or die "cannot hash $path: $?";;chomp $sha1;$sha256 = `nix-hash --flat --type sha256 $path`or die "cannot hash $path: $?";;chomp $sha256;}
$db->resultset('BuildProducts')->create({ build => $build->id, productnr => $productnr++, type => $type, subtype => $subtype, path => $path, filesize => $fileSize, sha1hash => $sha1, sha256hash => $sha256, name => $name, defaultpath => $defaultPath});}close LIST;
$db->resultset('BuildProducts')->create({ build => $build->id, productnr => $productnr++, type => $type, subtype => $subtype, path => $path, filesize => $fileSize, sha1hash => $sha1, sha256hash => $sha256, name => $name, defaultpath => $defaultPath});}close LIST;
$db->resultset('BuildProducts')->create({ build => $build->id, productnr => $productnr++, type => "nix-build", subtype => "", path => $outPath, name => $build->nixname});
$db->resultset('BuildProducts')->create({ build => $build->id, productnr => $productnr++, type => "nix-build", subtype => "", path => $outPath, name => $build->nixname});