From 149b71860de8af69e0dc400338f6dddde0bf2430 Mon Sep 17 00:00:00 2001 From: Simon Plakolb Date: Thu, 23 Feb 2023 16:01:06 +0100 Subject: [PATCH 1/2] preflight: Check nix version constraints directly --- direnvrc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/direnvrc b/direnvrc index 813e5b3..27b47d0 100644 --- a/direnvrc +++ b/direnvrc @@ -24,7 +24,9 @@ _nix_direnv_preflight () { exit 1 fi - if ! "${NIX_BIN_PREFIX}nix-shell" --extra-experimental-features '' --version 2>/dev/null >&2; then + nixversion=$("${NIX_BIN_PREFIX}"nix --version) + [[ "$nixversion" =~ ([0-9]+)[^0-9]*([0-9]+)[^0-9]*([0-9]+)? ]] + if [[ "${BASH_REMATCH[1]}" -lt "2" || "${BASH_REMATCH[1]}" -eq "2" && "${BASH_REMATCH[2]}" -lt "4" ]]; then log_status "nix-direnv: nix version is older than the required 2.4." exit 1 fi From 8d28c8f84e473a82a03ca35b330fa0a7117a9610 Mon Sep 17 00:00:00 2001 From: Simon Plakolb Date: Thu, 23 Feb 2023 16:01:44 +0100 Subject: [PATCH 2/2] preflight: Report nix version if its test fails --- direnvrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/direnvrc b/direnvrc index 27b47d0..e803eea 100644 --- a/direnvrc +++ b/direnvrc @@ -27,7 +27,7 @@ _nix_direnv_preflight () { nixversion=$("${NIX_BIN_PREFIX}"nix --version) [[ "$nixversion" =~ ([0-9]+)[^0-9]*([0-9]+)[^0-9]*([0-9]+)? ]] if [[ "${BASH_REMATCH[1]}" -lt "2" || "${BASH_REMATCH[1]}" -eq "2" && "${BASH_REMATCH[2]}" -lt "4" ]]; then - log_status "nix-direnv: nix version is older than the required 2.4." + log_status "nix-direnv: nix version ${BASH_REMATCH[0]} is older than the required 2.4." exit 1 fi