make version check skip less fragile

This commit is contained in:
Arthur Noel 2023-12-19 19:47:34 +00:00
parent 9d4a2cf0a6
commit e079c6baa2
2 changed files with 12 additions and 9 deletions

View file

@ -11,9 +11,9 @@ resholve.mkDerivation rec {
name = pname;
};
# drop min version checks which are redundant when built with nix
# skip min version checks which are redundant when built with nix
postPatch = ''
sed -i "/_require_version bash/,+2d" direnvrc
sed -i 1iNIX_DIRENV_SKIP_VERSION_CHECK=1 direnvrc
'';
installPhase = ''

View file

@ -60,13 +60,16 @@ _nix_direnv_preflight() {
_nix_direnv_fatal '$direnv environment variable was not defined. Was this script run inside direnv?'
fi
# check command min versions, bash check uses $BASH_VERSION with _require_version
# instead of _require_cmd_version because _require_cmd_version uses =~ operator which
# would be a syntax error on bash < 3
_require_version bash "$BASH_VERSION" "$BASH_MIN_VERSION"
# direnv stdlib defines $direnv
_require_cmd_version "$direnv" "$DIRENV_MIN_VERSION"
_require_cmd_version nix "$NIX_MIN_VERSION"
# check command min versions
if [[ -z ${NIX_DIRENV_SKIP_VERSION_CHECK:-} ]]; then
# bash check uses $BASH_VERSION with _require_version instead of
# _require_cmd_version because _require_cmd_version uses =~ operator which would be
# a syntax error on bash < 3
_require_version bash "$BASH_VERSION" "$BASH_MIN_VERSION"
# direnv stdlib defines $direnv
_require_cmd_version "$direnv" "$DIRENV_MIN_VERSION"
_require_cmd_version nix "$NIX_MIN_VERSION"
fi
local layout_dir
layout_dir=$(direnv_layout_dir)