mirror of
https://github.com/LnL7/nix-darwin.git
synced 2025-03-31 04:04:45 +00:00
Merge pull request #1138 from Enzime/push-trqkuxxuyztn
fix: submodules not working with Nix 2.24
This commit is contained in:
commit
4652874d01
2 changed files with 5 additions and 146 deletions
115
.github/workflows/test.yml
vendored
115
.github/workflows/test.yml
vendored
|
@ -153,60 +153,6 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
. /etc/static/bashrc
|
. /etc/static/bashrc
|
||||||
darwin-rebuild build --flake ./modules/examples/flake#simple --override-input nix-darwin . --override-input nixpkgs nixpkgs/${{ env.CURRENT_STABLE_CHANNEL }}
|
darwin-rebuild build --flake ./modules/examples/flake#simple --override-input nix-darwin . --override-input nixpkgs nixpkgs/${{ env.CURRENT_STABLE_CHANNEL }}
|
||||||
- name: Test git submodules
|
|
||||||
run: |
|
|
||||||
. /etc/static/bashrc
|
|
||||||
|
|
||||||
mkdir -p /tmp/{test-nix-darwin-submodules,example-submodule}
|
|
||||||
|
|
||||||
pushd /tmp/example-submodule
|
|
||||||
echo '"hello"' > hello.nix
|
|
||||||
git init
|
|
||||||
git add .
|
|
||||||
git commit -m "add a submodule we will import"
|
|
||||||
popd
|
|
||||||
|
|
||||||
cp -a ./modules/examples/. /tmp/test-nix-darwin-submodules
|
|
||||||
cp -a ./modules/examples/flake/flake.nix /tmp/test-nix-darwin-submodules
|
|
||||||
|
|
||||||
pushd /tmp/test-nix-darwin-submodules
|
|
||||||
/usr/bin/sed -i.bak \
|
|
||||||
'\#modules = \[#s#configuration#configuration ./simple.nix#' \
|
|
||||||
./flake.nix
|
|
||||||
/usr/bin/sed -i.bak \
|
|
||||||
's#pkgs.vim#pkgs."${import ./submodule-test/hello.nix}"#' \
|
|
||||||
./simple.nix
|
|
||||||
git init
|
|
||||||
git add flake.nix simple.nix
|
|
||||||
git \
|
|
||||||
-c protocol.file.allow=always \
|
|
||||||
submodule add /tmp/example-submodule submodule-test
|
|
||||||
popd
|
|
||||||
|
|
||||||
# Should fail
|
|
||||||
darwin-rebuild build \
|
|
||||||
--flake /tmp/test-nix-darwin-submodules#simple \
|
|
||||||
--override-input nix-darwin . \
|
|
||||||
--override-input nixpkgs nixpkgs/${{ env.CURRENT_STABLE_CHANNEL }} \
|
|
||||||
&& {
|
|
||||||
printf 'succeeded while expecting failure due to submodule\n' >/dev/stderr
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
# Should also fail
|
|
||||||
darwin-rebuild build \
|
|
||||||
--flake /tmp/test-nix-darwin-submodules?submodules=0#simple \
|
|
||||||
--override-input nix-darwin . \
|
|
||||||
--override-input nixpkgs nixpkgs/${{ env.CURRENT_STABLE_CHANNEL }} \
|
|
||||||
&& {
|
|
||||||
printf 'succeeded while expecting failure due to submodule\n' >/dev/stderr
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Should succeed
|
|
||||||
darwin-rebuild build \
|
|
||||||
--flake /tmp/test-nix-darwin-submodules?submodules=1#simple \
|
|
||||||
--override-input nix-darwin . \
|
|
||||||
--override-input nixpkgs nixpkgs/${{ env.CURRENT_STABLE_CHANNEL }} \
|
|
||||||
|
|
||||||
install-flake-against-unstable:
|
install-flake-against-unstable:
|
||||||
runs-on: macos-12
|
runs-on: macos-12
|
||||||
|
@ -236,64 +182,3 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
. /etc/static/bashrc
|
. /etc/static/bashrc
|
||||||
darwin-rebuild build --flake ./modules/examples/flake#simple --override-input nix-darwin . --override-input nixpkgs nixpkgs/nixpkgs-unstable
|
darwin-rebuild build --flake ./modules/examples/flake#simple --override-input nix-darwin . --override-input nixpkgs nixpkgs/nixpkgs-unstable
|
||||||
- name: Test git submodules
|
|
||||||
run: |
|
|
||||||
. /etc/static/bashrc
|
|
||||||
|
|
||||||
mkdir -p /tmp/{test-nix-darwin-submodules,example-submodule}
|
|
||||||
|
|
||||||
pushd /tmp/example-submodule
|
|
||||||
echo '"hello"' > hello.nix
|
|
||||||
git init
|
|
||||||
git add .
|
|
||||||
git commit -m "add a submodule we will import"
|
|
||||||
popd
|
|
||||||
|
|
||||||
cp -a ./modules/examples/. /tmp/test-nix-darwin-submodules
|
|
||||||
cp -a ./modules/examples/flake/flake.nix /tmp/test-nix-darwin-submodules
|
|
||||||
|
|
||||||
pushd /tmp/test-nix-darwin-submodules
|
|
||||||
/usr/bin/sed -i.bak \
|
|
||||||
'\#modules = \[#s#configuration#configuration ./simple.nix#' \
|
|
||||||
./flake.nix
|
|
||||||
/usr/bin/sed -i.bak \
|
|
||||||
's#pkgs.vim#pkgs."${import ./submodule-test/hello.nix}"#' \
|
|
||||||
./simple.nix
|
|
||||||
git init
|
|
||||||
git add flake.nix simple.nix
|
|
||||||
git \
|
|
||||||
-c protocol.file.allow=always \
|
|
||||||
submodule add /tmp/example-submodule submodule-test
|
|
||||||
popd
|
|
||||||
|
|
||||||
# Should fail
|
|
||||||
darwin-rebuild build \
|
|
||||||
--flake /tmp/test-nix-darwin-submodules#simple \
|
|
||||||
--override-input nix-darwin . \
|
|
||||||
--override-input nixpkgs nixpkgs/nixpkgs-unstable \
|
|
||||||
&& {
|
|
||||||
printf 'succeeded while expecting failure due to submodule\n' >/dev/stderr
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Should also fail
|
|
||||||
darwin-rebuild build \
|
|
||||||
--flake /tmp/test-nix-darwin-submodules?submodules=0#simple \
|
|
||||||
--override-input nix-darwin . \
|
|
||||||
--override-input nixpkgs nixpkgs/nixpkgs-unstable \
|
|
||||||
&& {
|
|
||||||
printf 'succeeded while expecting failure due to submodule\n' >/dev/stderr
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Should succeed
|
|
||||||
darwin-rebuild build \
|
|
||||||
--flake /tmp/test-nix-darwin-submodules?submodules=1#simple \
|
|
||||||
--override-input nix-darwin . \
|
|
||||||
--override-input nixpkgs nixpkgs/nixpkgs-unstable
|
|
||||||
|
|
||||||
# Should also succeed
|
|
||||||
darwin-rebuild build \
|
|
||||||
--flake git+file:///tmp/test-nix-darwin-submodules?submodules=1#simple \
|
|
||||||
--override-input nix-darwin . \
|
|
||||||
--override-input nixpkgs nixpkgs/nixpkgs-unstable
|
|
||||||
|
|
|
@ -157,43 +157,17 @@ fi
|
||||||
|
|
||||||
# For convenience, use the hostname as the default configuration to
|
# For convenience, use the hostname as the default configuration to
|
||||||
# build from the flake.
|
# build from the flake.
|
||||||
if [ -n "$flake" ]; then
|
if [[ -n "$flake" ]]; then
|
||||||
# Offical regex from https://www.rfc-editor.org/rfc/rfc3986#appendix-B
|
if [[ $flake =~ ^(.*)\#([^\#\"]*)$ ]]; then
|
||||||
if [[ "${flake}" =~ ^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))? ]]; then
|
flake="${BASH_REMATCH[1]}"
|
||||||
scheme=${BASH_REMATCH[1]} # eg. http:
|
flakeAttr="${BASH_REMATCH[2]}"
|
||||||
authority=${BASH_REMATCH[3]} # eg. //www.ics.uci.edu
|
|
||||||
path=${BASH_REMATCH[5]} # eg. /pub/ietf/uri/
|
|
||||||
queryWithQuestion=${BASH_REMATCH[6]}
|
|
||||||
fragment=${BASH_REMATCH[9]}
|
|
||||||
|
|
||||||
flake=${scheme}${authority}${path}${queryWithQuestion}
|
|
||||||
flakeAttr=${fragment}
|
|
||||||
fi
|
fi
|
||||||
if [ -z "$flakeAttr" ]; then
|
if [[ -z "$flakeAttr" ]]; then
|
||||||
flakeAttr=$(scutil --get LocalHostName)
|
flakeAttr=$(scutil --get LocalHostName)
|
||||||
fi
|
fi
|
||||||
flakeAttr=darwinConfigurations.${flakeAttr}
|
flakeAttr=darwinConfigurations.${flakeAttr}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$flake" ]; then
|
|
||||||
if nix "${flakeFlags[@]}" flake metadata --version &>/dev/null; then
|
|
||||||
cmd=metadata
|
|
||||||
else
|
|
||||||
cmd=info
|
|
||||||
fi
|
|
||||||
|
|
||||||
metadata=$(nix "${flakeFlags[@]}" flake "$cmd" --json "${extraMetadataFlags[@]}" "${extraLockFlags[@]}" -- "$flake")
|
|
||||||
flake=$(jq -r .url <<<"${metadata}")
|
|
||||||
|
|
||||||
if [ "$(jq -r .resolved.submodules <<<"${metadata}")" = "true" ]; then
|
|
||||||
if [[ "$flake" == *'?'* ]]; then
|
|
||||||
flake="${flake}&submodules=1"
|
|
||||||
else
|
|
||||||
flake="${flake}?submodules=1"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$action" != build ]; then
|
if [ "$action" != build ]; then
|
||||||
if [ -n "$flake" ]; then
|
if [ -n "$flake" ]; then
|
||||||
extraBuildFlags+=("--no-link")
|
extraBuildFlags+=("--no-link")
|
||||||
|
|
Loading…
Add table
Reference in a new issue