JTRG7RDQXKPSO4ESGDLSVAT5WIFGKDL424MN6YYCVTKCOR2FTXRQC 5SHCWE7XPQORSOLY7HGAIK2ODKBFPY4KVXRL2W7X6D4WALU544HQC HPIJ35SGWBE4WZE5RGSYGR7IRPCFYROUUUAHAC7E5TDCMSVM2OZAC DFXIN6YWMMN7BTJSSFVTFUMR4OKPAKNQF6PRBUC4BWXUFLZSQRDAC T4LLYESZ2HUXSLKZ6GNBLVWUVG7R5IDFHYHYO773QIZ6QTOOXR2AC OOQ2D3KCLFPYNAN253PHWLBQMB6OMO2KYQWQXLTP65SQAYZWQ5LAC 3HZY24CX4U2TO74HOY4YX3LBJIYF4DLXHCIY7J2RASAC4COMSMZAC 3XTHEUMP2ZOMPQWE3S5QWHIHCEJNEXGDPQB3JUVZFPS3RFMY455QC AHTEIK7GGPHUC3AXIJ2NX4TI3RLX65XYKGAIIC6MC2S6I6QPWTAAC PHX2HIVGHHKCAX6VNN2WXD4LRGSA74KQMJCCTMHK7HS6JPELVECAC SJLEZFC472OWVCR7WEUUYNS6BJDDR77SHWADKDCPIS2INMTPTIVAC 3HCBU2FAXZMSF4JJR5Q64BSN66MBOGVETNHK33V2WSNDGOF4HHQAC J5UVLXOK6EDIL5I7VKWH4V2QDS4DPD7FHRK6XBWSXFRQS4JKXFZQC L2E6EVE2RVFVDCUNRJ4CZYSQNS2DZUA5DTBETHBDUQUV2KQQRAOQC CLJQCY2XHIDNNMFBJ5PK3GQEN6RFALEFKXBJRWZPEIKR4PR5ZQ5AC QNDXPVCIRJRPFTYNRDCQC5KORSYB5FPX7IAM6UGACWCU6HWYT6CAC ZVTSOVHNQNQCRF3N44RKDQSL3UM7HSLTAXICMWEE6EIA6SWJXZCQC S5PV6IIMKJ7PGWIFLLXERHYF3BCP2UEGFRZEZLD6UUBLVEZXJLUAC M552HLIAP52D42AVXVC5SGROAYN2TBCEUZOXESWEMBBUX7G3U6TAC X27GNHDV5KPZ5GSH6DCAJMNCEMZLCP7M43JWF2X3O5QWXMOX273AC KXGOUX7PH4BOXPJRYRGDS4RY7RTXYWUXCRAB5JR3BLVS62PVKOQAC TWVSALRLHGSY6SHLMLT53K2A5SUCPU3SNFPZ2KWYOLDQUJBSZ2OAC RU7AQO7U4HCWJNQTR2KRGDLLG24WYD47MWIHREV6SIAPCPDQHAWQC S66BOMVUACAUDSGSDWP7ZIXVMZSQHWXOZYVTB7ILUCWZ7DDFAKVAC FHF6IZJQPUQHY5QWQYRPZVDBRLHREWRHGNKVQDT7F3GQKKLZXJKQC IK53RV4VGOHLCZGQCCIKPB45M3C7M7YMNBOJFBGZJ4LWIZNU4QNQC KN3VYE5P2RJB3KZ355LA5C2T2D5S2IR3QZFE53AJIWUVMETEEYDAC N22GPKYTOLZLBGTGDATQDVZ4R5APZEAOIA7L32X4UXBH4XNI7MWAC }sub fetchInputGit {my ($db, $project, $jobset, $name, $type, $value) = @_;my $uri = $value;my $timestamp = time;my $sha256;my $storePath;# Some simple caching: don't check a path more than once every N seconds.(my $cachedInput) = $db->resultset('CachedGitInputs')->search({uri => $uri, lastseen => {">", $timestamp - 3600}},{rows => 1, order_by => "lastseen DESC"});if (defined $cachedInput && isValidPath($cachedInput->storepath)) {$storePath = $cachedInput->storepath;$sha256 = $cachedInput->sha256hash;$timestamp = $cachedInput->timestamp;} else {# Then download this revision into the store.print STDERR "checking out Git input from $uri";$ENV{"NIX_HASH_ALGO"} = "sha256";$ENV{"PRINT_PATH"} = "1";my $stdout; my $stderr;(my $res, $stdout, $stderr) = captureStdoutStderr("nix-prefetch-git", $uri);die "Cannot check out Git repository `$uri':\n$stderr" unless $res;($sha256, $storePath) = split ' ', $stdout;($cachedInput) = $db->resultset('CachedGitInputs')->search({uri => $uri, sha256hash => $sha256});if (!defined $cachedInput) {txn_do($db, sub {$db->resultset('CachedGitInputs')->create({ uri => $uri, timestamp => $timestamp, lastseen => $timestamp, sha256hash => $sha256, storepath => $storePath});});} else {$timestamp = $cachedInput->timestamp;txn_do($db, sub {$cachedInput->update({lastseen => time});});}
return{ type => $type, uri => $uri, storePath => $storePath, sha256hash => $sha256, revision => strftime "%Y%m%d%H%M%S", gmtime($timestamp)};}sub fetchInputCVS {my ($db, $project, $jobset, $name, $type, $value) = @_;}sub fetchInput {my ($db, $project, $jobset, $name, $type, $value) = @_;if ($type eq "path") {return fetchInputPath($db, $project, $jobset, $name, $type, $value);}elsif ($type eq "svn") {return fetchInputSVN($db, $project, $jobset, $name, $type, $value);}elsif ($type eq "build") {return fetchInputBuild($db, $project, $jobset, $name, $type, $value);}elsif ($type eq "git") {return fetchInputGit($db, $project, $jobset, $name, $type, $value);}
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:RTeBJCvspGfTdHUR/TxFsg
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:skn8HFEXTvEiL4/6Q+ulvw
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:8FZKxfabZQfchVpHfvnVHA
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:6wJ0KJAILATio3ELRefU5Q
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:496WClgIZB6hXV0zCsBjbQ
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:K+kKzTgAlKSXevJWtLIwGA
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:giLh18QewdxF8Zi/5juWqA
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:eiaLNgxvTjSZGC4pMDtNWA
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:5tx+fkjjKYUNYBYQS+kSOw
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:5iUdHsNyEoM3D7i+tSteBQ
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-26 14:22:27# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:qbNPA5NkENlZXILuE3OGkA
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Un0iCqVS8PTpSdJiTjRXeA
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:vMJmHfs180MNWH9+pjS94g
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ZEYeoP+fkE3y/cohKLoCLg
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:3hG0+UX3MJMLjSTN29Le4Q
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:f3ZEnsrXJUjcpGkLNl24Rw
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:bY5DYFb1G7JRyNFpGbWXwA
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:I5DYg9q22g99Mstln/26fw
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:XPfPlym2UDd6gUr1aKrXhg
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:B2BMIuiQ3IAoqEJ18pHCeQ
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:961DCIj2fAQFYAR6/SnJ8A
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:srhHJGx+LAdeo++jv1RmMg
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 14:04:55# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:xWsqXneZw90uEw/vcEXc4w
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:05:10# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:fVXvhb343Zw1625daVz40g
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 14:04:55# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dWe2DEsuZuOjVj4IA8TwQg
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:05:10# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+HDJ8tIPcvj5+IwgHqTnaw
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:DvQQfFaVP0ci1LMKfbl3tg
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:fu21YcmM1U76pcgFY1qZ5A
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:zG8H+WLuEnvPl9UEJ3yyCQ
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:cbt+hnRoIN5T6u8qC9uQBg
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:7HmnBjVA60uMDrV2Bc9TmA
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:QtiooD8Th7dBKknK5IRhMQ
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:l4FwcyoQw1cpvc+QKt6W7Q
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:9oO99uYxlWqY3GxfUWjNzg
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:FSfQfOaAf2oeQeFtBI7HoQ
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:oBiKpCxHGZcGujhY/ZbbxA
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:FqMPRQo5hyHDy6zZIqdR5w
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:RX9tEuV8mEg13dxEe9SJrQ
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:DVmiIWbS8/PBOMvjjmns6g
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:BnM3PKkdJXAaT4rPR8gJsQ
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-10-23 16:56:03# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:s5XNrT7kEVqbLED5g/J/SA
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Y97NEH6tnsRjsy0/nVgMjQ
);create table CachedGitInputs (uri text not null,timestamp integer not null, -- when we first saw this hashlastSeen integer not null, -- when we last saw this hashsha256hash text not null,storePath text not null,primary key (uri, sha256hash));create table CachedCVSInputs (uri text not null,module text not null,revision integer not null,timestamp integer not null, -- when we first saw this hashlastSeen integer not null, -- when we last saw this hashsha256hash text not null,storePath text not null,primary key (uri, module, sha256hash)