mirror of
https://github.com/NixOS/nix
synced 2025-06-28 09:31:16 +02:00
As discussed in the last Nix team meeting (2024-02-95), this method doesn't belong because `CanonPath` is a virtual/ideal absolute path format, not used in file systems beyond the native OS format for which a "current working directory" is defined. Progress towards #9205
36 lines
812 B
C++
36 lines
812 B
C++
#include "fs-input-accessor.hh"
|
|
#include "posix-source-accessor.hh"
|
|
#include "store-api.hh"
|
|
|
|
namespace nix {
|
|
|
|
struct FSInputAccessor : InputAccessor, PosixSourceAccessor
|
|
{
|
|
using PosixSourceAccessor::PosixSourceAccessor;
|
|
};
|
|
|
|
ref<InputAccessor> makeFSInputAccessor()
|
|
{
|
|
return make_ref<FSInputAccessor>();
|
|
}
|
|
|
|
ref<InputAccessor> makeFSInputAccessor(std::filesystem::path root)
|
|
{
|
|
return make_ref<FSInputAccessor>(std::move(root));
|
|
}
|
|
|
|
ref<InputAccessor> makeStorePathAccessor(
|
|
ref<Store> store,
|
|
const StorePath & storePath)
|
|
{
|
|
// FIXME: should use `store->getFSAccessor()`
|
|
return makeFSInputAccessor(std::filesystem::path { store->toRealPath(storePath) });
|
|
}
|
|
|
|
SourcePath getUnfilteredRootPath(CanonPath path)
|
|
{
|
|
static auto rootFS = makeFSInputAccessor();
|
|
return {rootFS, path};
|
|
}
|
|
|
|
}
|