87fd1f024c
The original attempt at this introduced a regression; this commit reverts the revert and fixes the regression. This reverts commit3e151d4d77
. Fix to the regression: flakeref: fix handling of `?dir=` param for flakes in subdirs As reported in #419[1], accessing a flake in a subdir of a Git repository fails with the previous commit[2] applied with the error error: unsupported Git input attribute 'dir' The problem is that the `dir`-param is inserted into the parsed URL if a flake is fetched from the subdir of a Git repository. However, for the fetching part this isn't even needed. The fix is to just pass `subdir` as second argument to `FlakeRef` (which needs a `basedir` that can be empty) and leave the parsedURL as-is. Added a regression test to make sure we don't run into this again. [1] https://git.lix.systems/lix-project/lix/issues/419 [2] e22172aaf6b6a366cecd3c025590e68fa2b91bcc, originally3e151d4d77
Change-Id: I2c72d5a32e406a7ca308e271730bd0af01c5d18b
20 lines
597 B
Bash
20 lines
597 B
Bash
source common.sh
|
|
requireGit
|
|
clearStore
|
|
|
|
container="$TEST_HOME"/flake-container
|
|
flake_dir="$container"/flake-dir
|
|
|
|
createGitRepo "$container"
|
|
mkdir -p "$flake_dir"
|
|
writeSimpleFlake "$flake_dir"
|
|
git -C "$container" add flake-dir
|
|
|
|
pushd "$flake_dir" &>/dev/null
|
|
info="$(nix flake info --json)"
|
|
[[ "$(jq -r '.resolvedUrl' <<<"$info")" == git+file://*/flake-container?dir=flake-dir ]]
|
|
[[ "$(jq -r '.url' <<<"$info")" == git+file://*/flake-container?dir=flake-dir ]]
|
|
|
|
# Make sure we can actually access & build stuff in this flake.
|
|
nix build "path:$flake_dir#foo" -L
|
|
popd &>/dev/null
|