-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #8064 from knedlsepp/flake-in-submodule
Add a test with flake.nix in a git submodule
- Loading branch information
Showing
2 changed files
with
53 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
source common.sh | ||
|
||
# Tests that: | ||
# - flake.nix may reside inside of a git submodule | ||
# - the flake can access content outside of the submodule | ||
# | ||
# rootRepo | ||
# ├── root.nix | ||
# └── submodule | ||
# ├── flake.nix | ||
# └── sub.nix | ||
|
||
|
||
requireGit | ||
|
||
clearStore | ||
|
||
# Submodules can't be fetched locally by default. | ||
# See fetchGitSubmodules.sh | ||
export XDG_CONFIG_HOME=$TEST_HOME/.config | ||
git config --global protocol.file.allow always | ||
|
||
|
||
rootRepo=$TEST_ROOT/rootRepo | ||
subRepo=$TEST_ROOT/submodule | ||
|
||
|
||
createGitRepo $subRepo | ||
cat > $subRepo/flake.nix <<EOF | ||
{ | ||
outputs = { self }: { | ||
sub = import ./sub.nix; | ||
root = import ../root.nix; | ||
}; | ||
} | ||
EOF | ||
echo '"expression in submodule"' > $subRepo/sub.nix | ||
git -C $subRepo add flake.nix sub.nix | ||
git -C $subRepo commit -m Initial | ||
|
||
createGitRepo $rootRepo | ||
|
||
git -C $rootRepo submodule init | ||
git -C $rootRepo submodule add $subRepo submodule | ||
echo '"expression in root repo"' > $rootRepo/root.nix | ||
git -C $rootRepo add root.nix | ||
git -C $rootRepo commit -m "Add root.nix" | ||
|
||
# Flake can live inside a submodule and can be accessed via ?dir=submodule | ||
[[ $(nix eval --json git+file://$rootRepo\?submodules=1\&dir=submodule#sub ) = '"expression in submodule"' ]] | ||
# The flake can access content outside of the submodule | ||
[[ $(nix eval --json git+file://$rootRepo\?submodules=1\&dir=submodule#root ) = '"expression in root repo"' ]] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters