mirror of
https://github.com/NixOS/nix.git
synced 2025-11-09 03:56:01 +01:00
Merge pull request #13939 from DeterminateSystems/fix-inputs-from-ignoring-dir-param-upstreaming
Pass `dir` in extraAttrs when overriding the registry
This commit is contained in:
commit
a97c5df47c
2 changed files with 24 additions and 5 deletions
|
|
@ -178,10 +178,16 @@ MixFlakeOptions::MixFlakeOptions()
|
|||
for (auto & [inputName, input] : flake.lockFile.root->inputs) {
|
||||
auto input2 = flake.lockFile.findInput({inputName}); // resolve 'follows' nodes
|
||||
if (auto input3 = std::dynamic_pointer_cast<const flake::LockedNode>(input2)) {
|
||||
fetchers::Attrs extraAttrs;
|
||||
|
||||
if (!input3->lockedRef.subdir.empty()) {
|
||||
extraAttrs["dir"] = input3->lockedRef.subdir;
|
||||
}
|
||||
|
||||
overrideRegistry(
|
||||
fetchers::Input::fromAttrs(fetchSettings, {{"type", "indirect"}, {"id", inputName}}),
|
||||
input3->lockedRef.input,
|
||||
{});
|
||||
extraAttrs);
|
||||
}
|
||||
}
|
||||
}},
|
||||
|
|
|
|||
|
|
@ -472,12 +472,12 @@ EOF
|
|||
[[ "$(nix flake metadata --json "$flake3Dir" | jq -r .locks.nodes.flake1.locked.rev)" = $prevFlake1Rev ]]
|
||||
|
||||
baseDir=$TEST_ROOT/$RANDOM
|
||||
subdirFlakeDir=$baseDir/foo
|
||||
mkdir -p "$subdirFlakeDir"
|
||||
subdirFlakeDir1=$baseDir/foo1
|
||||
mkdir -p "$subdirFlakeDir1"
|
||||
|
||||
writeSimpleFlake "$baseDir"
|
||||
|
||||
cat > "$subdirFlakeDir"/flake.nix <<EOF
|
||||
cat > "$subdirFlakeDir1"/flake.nix <<EOF
|
||||
{
|
||||
outputs = inputs: {
|
||||
shouldBeOne = 1;
|
||||
|
|
@ -485,5 +485,18 @@ cat > "$subdirFlakeDir"/flake.nix <<EOF
|
|||
}
|
||||
EOF
|
||||
|
||||
nix registry add --registry "$registry" flake2 "path:$baseDir?dir=foo"
|
||||
nix registry add --registry "$registry" flake2 "path:$baseDir?dir=foo1"
|
||||
[[ "$(nix eval --flake-registry "$registry" flake2#shouldBeOne)" = 1 ]]
|
||||
|
||||
subdirFlakeDir2=$baseDir/foo2
|
||||
mkdir -p "$subdirFlakeDir2"
|
||||
cat > "$subdirFlakeDir2"/flake.nix <<EOF
|
||||
{
|
||||
inputs.foo1.url = "path:$baseDir?dir=foo1";
|
||||
|
||||
outputs = inputs: { };
|
||||
}
|
||||
EOF
|
||||
|
||||
# Regression test for https://github.com/NixOS/nix/issues/13918
|
||||
[[ "$(nix eval --inputs-from "$subdirFlakeDir2" foo1#shouldBeOne)" = 1 ]]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue