summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorMark Sisson <5761292+marksisson@users.noreply.github.com>2024-03-02 18:51:25 -0600
committerMark Sisson <5761292+marksisson@users.noreply.github.com>2024-03-02 18:51:25 -0600
commit3397ab3b7736e345e168da0ecade5c96b8a7f042 (patch)
tree9d31d1c1d366af229277784e0159a66b75c439b9 /modules
parent8a15cb36fffa0b5fbe31ef16ede0a479bef4b365 (diff)
feat(nix): adapt nix.conf validation for different Nix versions
This commit updates the nix.conf validation logic to accommodate different versions of Nix. It introduces a conditional assignment of the `showCommand` variable, which determines the appropriate command to use based on the Nix version. For versions at least "2.20pre", it uses "config show"; otherwise, it falls back to "show-config". This change ensures compatibility across various Nix releases.
Diffstat (limited to 'modules')
-rw-r--r--modules/nix/default.nix8
1 files changed, 6 insertions, 2 deletions
diff --git a/modules/nix/default.nix b/modules/nix/default.nix
index ceaad55..ef5ce6c 100644
--- a/modules/nix/default.nix
+++ b/modules/nix/default.nix
@@ -62,13 +62,17 @@ let
if pkgs.stdenv.hostPlatform != pkgs.stdenv.buildPlatform then ''
echo "Ignoring validation for cross-compilation"
''
- else ''
+ else
+ let
+ showCommand = if isNixAtLeast "2.20pre" then "config show" else "show-config";
+ in
+ ''
echo "Validating generated nix.conf"
ln -s $out ./nix.conf
set -e
set +o pipefail
NIX_CONF_DIR=$PWD \
- ${cfg.package}/bin/nix show-config ${optionalString (isNixAtLeast "2.3pre") "--no-net"} \
+ ${cfg.package}/bin/nix ${showCommand} ${optionalString (isNixAtLeast "2.3pre") "--no-net"} \
${optionalString (isNixAtLeast "2.4pre") "--option experimental-features nix-command"} \
|& sed -e 's/^warning:/error:/' \
| (! grep '${if cfg.checkConfig then "^error:" else "^error: unknown setting"}')