mirror of
https://github.com/NixOS/nix.git
synced 2025-11-20 17:29:36 +01:00
Create a second Store::getFSAccessor for a single store object
This is sometimes easier / more performant to implement, and independently it is also a more convenient interface for many callers. The existing store-wide `getFSAccessor` is only used for - `nix why-depends` - the evaluator I hope we can get rid of it for those, too, and then we have the option of getting rid of the store-wide method. Co-authored-by: Sergei Zimmerman <sergei@zimmerman.foo>
This commit is contained in:
parent
0175f7e836
commit
a97d6d89d8
26 changed files with 125 additions and 57 deletions
|
|
@ -1120,10 +1120,9 @@ Derivation Store::derivationFromPath(const StorePath & drvPath)
|
|||
|
||||
static Derivation readDerivationCommon(Store & store, const StorePath & drvPath, bool requireValidPath)
|
||||
{
|
||||
auto accessor = store.getFSAccessor(requireValidPath);
|
||||
auto accessor = store.getFSAccessor(drvPath, requireValidPath);
|
||||
try {
|
||||
return parseDerivation(
|
||||
store, accessor->readFile(CanonPath(drvPath.to_string())), Derivation::nameFromPath(drvPath));
|
||||
return parseDerivation(store, accessor->readFile(CanonPath::root), Derivation::nameFromPath(drvPath));
|
||||
} catch (FormatError & e) {
|
||||
throw Error("error parsing derivation '%s': %s", store.printStorePath(drvPath), e.msg());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue