OWRS526HCBSKWK5KFWO34YSZRNRXWBBG74KLW7BZSRIIZUNSELBQC WV4SSAIYM4SVBQ2VISDTAXQJCPKRGTLSVFH44CQFEMC4COWG5OKQC EBJP3MNAC4CRYGMJJHMKUYWTXP3N4WMMORRLDSDHQVF5ZLOTIENQC OG3Z3QGCG2FNDGF4VQYWOXLZCF7LGTZCUMGKUCBNAPAQ5FRFHQ2AC HJOEIMLRDVQ2KZI5HGL2HKGBM3AHP7YIKGKDAGFUNKRUXVRB24NAC HX4QYOYAKKFKK4KF6SZ6FQCM5ZF7ZFDTQUR4GS5WPPTYZASYZZUAC 5SMQ2PLKIUCWCHY2LZIKI4SRZYKKMZKWZR5QSKE6ZM22HPRH54EQC FAIJDQKZH6SUUNCKW5RIOZ37YRAO5ACS6FX76MHRNN53LDBWO6ZQC HE3GX5IPS6XA7KLNP5WZY2YU27WQS663WSKAL5FHWBSJ5GMM633AC auto s = getEnv("HYDRA_DBI").value_or("dbi:Pg:dbname=hydra;");std::string prefix = "dbi:Pg:";if (std::string(s, 0, prefix.size()) != prefix)throw Error("$HYDRA_DBI does not denote a PostgreSQL database");return concatStringsSep(" ", tokenizeString<Strings>(string(s, prefix.size()), ";"));
std::string lower_prefix = "dbi:Pg:";std::string upper_prefix = "DBI:Pg:";if ((std::string(s, 0, lower_prefix.size()) == lower_prefix) ||(std::string(s, 0, upper_prefix.size()) == upper_prefix)) {return concatStringsSep(" ", tokenizeString<Strings>(string(s, lower_prefix.size()), ";"));}throw Error("$HYDRA_DBI does not denote a PostgreSQL database");
our @EXPORT = qw(hydra_setup nrBuildsForJobset queuedBuildsForJobset nrQueuedBuildsForJobset createBaseJobset createJobsetWithOneInput evalSucceeds runBuild updateRepository);
our @EXPORT = qw(dbinit hydra_setup nrBuildsForJobset queuedBuildsForJobset nrQueuedBuildsForJobset createBaseJobset createJobsetWithOneInput evalSucceeds runBuild updateRepository);sub dbinit() {my $pgsql = Test::PostgreSQL->new();$ENV{'HYDRA_DBI'} = $pgsql->dsn;system("hydra-init") == 0 or die;return $pgsql;}sub captureStdoutStderr {# "Lazy"-load Hydra::Helper::Nix to avoid the compile-time# import of Hydra::Model::DB. Early loading of the DB class# causes fixation of the DSN, and we need to fixate it after# the temporary DB is setup.require Hydra::Helper::Nix;return Hydra::Helper::Nix::captureStdoutStderr(@_)}