1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-27 00:11:17 +02:00

Use SourcePath in more places

Now that SourcePath uses a SourceAccessor instead of an InputAccessor,
we can use it in function signatures instead of passing a
SourceAccessor and CanonPath separately.
This commit is contained in:
Eelco Dolstra 2024-05-06 19:05:42 +02:00
parent 2926ef0e90
commit eab2919119
25 changed files with 101 additions and 109 deletions

View file

@ -167,14 +167,13 @@ StorePath StoreDirConfig::makeFixedOutputPathFromCA(std::string_view name, const
std::pair<StorePath, Hash> StoreDirConfig::computeStorePath(
std::string_view name,
SourceAccessor & accessor,
const CanonPath & path,
const SourcePath & path,
ContentAddressMethod method,
HashAlgorithm hashAlgo,
const StorePathSet & references,
PathFilter & filter) const
{
auto h = hashPath(accessor, path, method.getFileIngestionMethod(), hashAlgo, filter);
auto h = hashPath(path, method.getFileIngestionMethod(), hashAlgo, filter);
return {
makeFixedOutputPathFromCA(
name,
@ -192,8 +191,7 @@ std::pair<StorePath, Hash> StoreDirConfig::computeStorePath(
StorePath Store::addToStore(
std::string_view name,
SourceAccessor & accessor,
const CanonPath & path,
const SourcePath & path,
ContentAddressMethod method,
HashAlgorithm hashAlgo,
const StorePathSet & references,
@ -214,7 +212,7 @@ StorePath Store::addToStore(
break;
}
auto source = sinkToSource([&](Sink & sink) {
dumpPath(accessor, path, sink, fsm, filter);
dumpPath(path, sink, fsm, filter);
});
return addToStoreFromDump(*source, name, fsm, method, hashAlgo, references, repair);
}
@ -343,8 +341,7 @@ digraph graphname {
*/
ValidPathInfo Store::addToStoreSlow(
std::string_view name,
SourceAccessor & accessor,
const CanonPath & srcPath,
const SourcePath & srcPath,
ContentAddressMethod method, HashAlgorithm hashAlgo,
const StorePathSet & references,
std::optional<Hash> expectedCAHash)
@ -366,7 +363,7 @@ ValidPathInfo Store::addToStoreSlow(
srcPath. The fact that we use scratchpadSink as a temporary buffer here
is an implementation detail. */
auto fileSource = sinkToSource([&](Sink & scratchpadSink) {
accessor.dumpPath(srcPath, scratchpadSink);
srcPath.dumpPath(scratchpadSink);
});
/* tapped provides the same data as fileSource, but we also write all the
@ -389,13 +386,12 @@ ValidPathInfo Store::addToStoreSlow(
auto hash = method == FileIngestionMethod::Recursive && hashAlgo == HashAlgorithm::SHA256
? narHash
: method == FileIngestionMethod::Git
? git::dumpHash(hashAlgo, accessor, srcPath).hash
? git::dumpHash(hashAlgo, srcPath).hash
: caHashSink.finish().first;
if (expectedCAHash && expectedCAHash != hash)
throw Error("hash mismatch for '%s'", srcPath);
ValidPathInfo info {
*this,
name,
@ -412,7 +408,7 @@ ValidPathInfo Store::addToStoreSlow(
if (!isValidPath(info.path)) {
auto source = sinkToSource([&](Sink & scratchpadSink) {
accessor.dumpPath(srcPath, scratchpadSink);
srcPath.dumpPath(scratchpadSink);
});
addToStore(info, *source);
}