diff --git a/direnvrc b/direnvrc index 813e5b3..e803eea 100644 --- a/direnvrc +++ b/direnvrc @@ -24,8 +24,10 @@ _nix_direnv_preflight () { exit 1 fi - if ! "${NIX_BIN_PREFIX}nix-shell" --extra-experimental-features '' --version 2>/dev/null >&2; then - log_status "nix-direnv: nix version is older than the required 2.4." + 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 ${BASH_REMATCH[0]} is older than the required 2.4." exit 1 fi