mirror of
https://github.com/NixOS/nix
synced 2025-06-30 11:43:15 +02:00
Fix flake subdirectory handling
This commit is contained in:
parent
73769b28e3
commit
cfc38257cf
3 changed files with 14 additions and 8 deletions
|
@ -626,15 +626,20 @@ void callFlake(EvalState & state,
|
|||
auto vCallFlake = state.allocValue();
|
||||
auto vLocks = state.allocValue();
|
||||
auto vRootSrc = state.allocValue();
|
||||
auto vTmp = state.allocValue();
|
||||
auto vRootSubdir = state.allocValue();
|
||||
auto vTmp1 = state.allocValue();
|
||||
auto vTmp2 = state.allocValue();
|
||||
|
||||
mkString(*vLocks, lockedInputs.to_string());
|
||||
|
||||
emitTreeAttrs(state, *flake.sourceInfo, flake.lockedRef.input, *vRootSrc);
|
||||
|
||||
mkString(*vRootSubdir, flake.lockedRef.subdir);
|
||||
|
||||
state.evalFile(canonPath(settings.nixDataDir + "/nix/corepkgs/call-flake.nix", true), *vCallFlake);
|
||||
state.callFunction(*vCallFlake, *vLocks, *vTmp, noPos);
|
||||
state.callFunction(*vTmp, *vRootSrc, vRes, noPos);
|
||||
state.callFunction(*vCallFlake, *vLocks, *vTmp1, noPos);
|
||||
state.callFunction(*vTmp1, *vRootSrc, *vTmp2, noPos);
|
||||
state.callFunction(*vTmp2, *vRootSubdir, vRes, noPos);
|
||||
}
|
||||
|
||||
void callFlake(EvalState & state,
|
||||
|
|
|
@ -76,6 +76,7 @@ static void prim_fetchTree(EvalState & state, const Pos & pos, Value * * args, V
|
|||
if (evalSettings.pureEval && !input->isImmutable())
|
||||
throw Error("in pure evaluation mode, 'fetchTree' requires an immutable input");
|
||||
|
||||
// FIXME: use fetchOrSubstituteTree
|
||||
auto [tree, input2] = input->fetchTree(state.store);
|
||||
|
||||
if (state.allowedPaths)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue