2024-05-28 16:43:04 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2022-12-07 11:58:58 +00:00
|
|
|
source ./common.sh
|
|
|
|
|
|
|
|
requireGit
|
|
|
|
|
|
|
|
flake1Dir=$TEST_ROOT/flake1
|
|
|
|
flake2Dir=$TEST_ROOT/flake2
|
|
|
|
|
2024-06-04 20:33:31 +00:00
|
|
|
createGitRepo "$flake1Dir"
|
|
|
|
cat > "$flake1Dir"/flake.nix <<EOF
|
2022-12-07 11:58:58 +00:00
|
|
|
{
|
|
|
|
outputs = { self }: { x = import ./x.nix; };
|
|
|
|
}
|
|
|
|
EOF
|
2024-06-04 20:33:31 +00:00
|
|
|
echo 123 > "$flake1Dir"/x.nix
|
|
|
|
git -C "$flake1Dir" add flake.nix x.nix
|
|
|
|
git -C "$flake1Dir" commit -m Initial
|
2022-12-07 11:58:58 +00:00
|
|
|
|
2024-06-04 20:33:31 +00:00
|
|
|
createGitRepo "$flake2Dir"
|
|
|
|
cat > "$flake2Dir"/flake.nix <<EOF
|
2022-12-07 11:58:58 +00:00
|
|
|
{
|
|
|
|
outputs = { self, flake1 }: { x = flake1.x; };
|
|
|
|
}
|
|
|
|
EOF
|
2024-06-04 20:33:31 +00:00
|
|
|
git -C "$flake2Dir" add flake.nix
|
2022-12-07 11:58:58 +00:00
|
|
|
|
2024-06-04 20:33:31 +00:00
|
|
|
[[ $(nix eval --json "$flake2Dir#x" --override-input flake1 "$TEST_ROOT/flake1") = 123 ]]
|
2022-12-07 11:58:58 +00:00
|
|
|
|
2024-06-04 20:33:31 +00:00
|
|
|
echo 456 > "$flake1Dir"/x.nix
|
2022-12-07 11:58:58 +00:00
|
|
|
|
2024-06-04 20:33:31 +00:00
|
|
|
[[ $(nix eval --json "$flake2Dir#x" --override-input flake1 "$TEST_ROOT/flake1") = 456 ]]
|
2024-12-09 12:56:03 +00:00
|
|
|
|
2025-01-10 15:27:40 +00:00
|
|
|
# Dirty overrides require --allow-dirty-locks.
|
2024-12-09 12:56:03 +00:00
|
|
|
expectStderr 1 nix flake lock "$flake2Dir" --override-input flake1 "$TEST_ROOT/flake1" |
|
2025-01-10 15:27:40 +00:00
|
|
|
grepQuiet "Will not write lock file.*because it has an unlocked input"
|
|
|
|
|
|
|
|
nix flake lock "$flake2Dir" --override-input flake1 "$TEST_ROOT/flake1" --allow-dirty-locks
|
|
|
|
|
2025-01-28 21:07:50 +00:00
|
|
|
# Using a lock file with a dirty lock does not require --allow-dirty-locks, but should print a warning.
|
|
|
|
expectStderr 0 nix eval "$flake2Dir#x" |
|
|
|
|
grepQuiet "warning: Lock file entry .* is unlocked"
|
2025-01-10 15:27:40 +00:00
|
|
|
|
2025-01-28 21:07:50 +00:00
|
|
|
[[ $(nix eval "$flake2Dir#x") = 456 ]]
|