From 6d6f0d85a31d93302950e713e3e16c5f9bd31d17 Mon Sep 17 00:00:00 2001 From: Bryan Bennett Date: Mon, 31 Jan 2022 13:15:20 -0500 Subject: [PATCH 1/3] Declare (and enforce) a minimum direnv version 2.21.3 introduces extglob to direnv's stdlib. This means we need at least 2.21.3 to execute nix_direnv_version. This just enforces a previously unstated dependency. --- direnvrc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/direnvrc b/direnvrc index 4f924e6..089349d 100644 --- a/direnvrc +++ b/direnvrc @@ -3,6 +3,11 @@ # Usage: nix_direnv_version # # Checks that the nix-direnv version is at least as old as . + +if ! has direnv_version || ! direnv_version 2.21.3; then + exit +fi + nix_direnv_version() { declare major='1' minor='5' patch='1' # UPDATE(nix-direnv version) From effc976ce73fdddd32d41b6c318363a5532da442 Mon Sep 17 00:00:00 2001 From: Bryan Bennett Date: Mon, 31 Jan 2022 13:26:21 -0500 Subject: [PATCH 2/3] Use non-zero exit code for error status --- direnvrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/direnvrc b/direnvrc index 089349d..445c3d3 100644 --- a/direnvrc +++ b/direnvrc @@ -5,7 +5,7 @@ # Checks that the nix-direnv version is at least as old as . if ! has direnv_version || ! direnv_version 2.21.3; then - exit + exit 1 fi nix_direnv_version() { From c6db289e0f38c352688468fb41456f2c0da7fe76 Mon Sep 17 00:00:00 2001 From: Bryan Bennett Date: Wed, 2 Feb 2022 14:23:59 -0500 Subject: [PATCH 3/3] Print a more useful error on old direnv versions --- direnvrc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/direnvrc b/direnvrc index 445c3d3..14b6380 100644 --- a/direnvrc +++ b/direnvrc @@ -1,13 +1,16 @@ # shellcheck shell=bash +REQUIRED_DIRENV_VERSION="2.21.3" + + +if ! has direnv_version || ! direnv_version "$REQUIRED_DIRENV_VERSION" 2>/dev/null; then + printf '%s\n' "nix-direnv: base direnv version is older than the required v$REQUIRED_DIRENV_VERSION." >&2 + exit 1 +fi + # Usage: nix_direnv_version # # Checks that the nix-direnv version is at least as old as . - -if ! has direnv_version || ! direnv_version 2.21.3; then - exit 1 -fi - nix_direnv_version() { declare major='1' minor='5' patch='1' # UPDATE(nix-direnv version)