BAFICF73XUYNAYT6T6X7GQIFHG6CLGPYYNFBMC6ON6SVPNOXO6RAC 73YR46NJNYZQKHA3QDJCAZYAKC2CGEF5LIS44NOIPDZU6FX6BDPQC YHP5DSOOKAXAYHUDMYO6EKX2YAN7DLDQPJX5K52TCP7EXQVP6JAAC 24BMQDZAWDQ7VNIA7TIROXSOYLOJBNZ2E4264WHWNJAEN6ZB3UOAC T5BIOVJEMBIASP7EKQVV2N3VD6I56UXH6LCD5I33BDQEVHJAMGKQC DKJFD6JNNK5LJMRGQABMJZKMFZLGY3ADKJWF6J4BBHEUPY3NB67QC WHULPA6SJJVCXISPL3GAQIRIKQN2DTUSMWGP2ECITWYMLHOON3SQC GS4BE6TB6GH2JUZJHDPHL6YG7J7YYESF3YOZJZ2CFABXUTO4VYPQC MHVIT4JYWUYD4UCGB2AHLXWLX6B5SYE22BREERNGANT7RGGDUFOAC static std::tuple<bool, string> secureRead(Path fileName){auto fail = std::make_tuple(false, "");if (!pathExists(fileName)) return fail;try {/* For security, resolve symlinks. */fileName = canonPath(fileName, true);if (!isInStore(fileName)) return fail;return std::make_tuple(true, readFile(fileName));} catch (Error & e) { return fail; }}
try {product.path = canonPath(product.path, true);} catch (Error & e) { continue; }if (!isInStore(product.path) || !pathExists(product.path)) continue;
product.path = canonPath(product.path);if (!isInStore(product.path)) continue;
product.fileSize = st.st_size;product.sha1hash = hashFile(htSHA1, product.path);product.sha256hash = hashFile(htSHA256, product.path);
product.fileSize = st.fileSize;auto contents = accessor->readFile(product.path);product.sha1hash = hashString(htSHA1, contents);product.sha256hash = hashString(htSHA256, contents);
#if 0struct stat st;if (stat(product.path.c_str(), &st))throw SysError(format("getting status of ‘%1%’") % product.path);if (S_ISDIR(st.st_mode))#endif
auto st = accessor->stat(product.path);if (st.type == FSAccessor::Type::tMissing)throw Error(format("getting status of ‘%1%’") % product.path);if (st.type == FSAccessor::Type::tDirectory)
auto file = secureRead(output + "/nix-support/hydra-metrics");for (auto & line : tokenizeString<Strings>(std::get<1>(file), "\n")) {
Path metricsFile = output + "/nix-support/hydra-metrics";if (accessor->stat(metricsFile).type != FSAccessor::Type::tRegular) continue;for (auto & line : tokenizeString<Strings>(accessor->readFile(metricsFile), "\n")) {