forked from lix-project/lix
eldritch horrors
89e99d94e4
Combine `AbstractPos`, `PosAdapter`, and `Pos`
(cherry picked from commit 113499d16fc87d53b73fb62fe6242154909756ed)
===
this is a bit cursed because originally it was based on InputAccessor
code that we don't have and moved/patched features we likewise don't
have (fetchToStore caching, all the individual accessors,
ContentAddressMethod). the commit is adjusted accordingly to
match (remove caching, ignore accessors, use FileIngestionMethod).
note that `state.rootPath . CanonPath == abs` and
computeStorePathForPath works relative to cwd, so the slight rewrite in
the moved fetchToStore is legal.
Change-Id: I05fd340c273f0bcc8ffabfebdc4a88b98083bce5
27 lines
649 B
C++
27 lines
649 B
C++
#include "fetch-to-store.hh"
|
|
#include "fetchers.hh"
|
|
#include "cache.hh"
|
|
|
|
namespace nix {
|
|
|
|
StorePath fetchToStore(
|
|
Store & store,
|
|
const SourcePath & path,
|
|
std::string_view name,
|
|
FileIngestionMethod method,
|
|
PathFilter * filter,
|
|
RepairFlag repair)
|
|
{
|
|
Activity act(*logger, lvlChatty, actUnknown, fmt("copying '%s' to the store", path));
|
|
|
|
auto filter2 = filter ? *filter : defaultPathFilter;
|
|
|
|
return
|
|
settings.readOnlyMode
|
|
? store.computeStorePathForPath(name, path.path.abs(), method, htSHA256, filter2).first
|
|
: store.addToStore(name, path.path.abs(), method, htSHA256, filter2, repair);
|
|
}
|
|
|
|
|
|
}
|