Merge pull request #449 from kingarrrt/fixup

Fixup `$direnv` usage
This commit is contained in:
mergify[bot] 2023-12-20 07:03:29 +00:00 committed by GitHub
commit f4123add44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 13 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 = ''
@ -24,7 +24,7 @@ resholve.mkDerivation rec {
default = {
scripts = [ "share/${pname}/direnvrc" ];
interpreter = "none";
inputs = [ coreutils direnv nix ];
inputs = [ coreutils nix ];
fake = {
builtin = [
"PATH_add"
@ -40,7 +40,10 @@ resholve.mkDerivation rec {
"shasum"
];
};
keep."$cmd" = true;
keep = {
"$cmd" = true;
"$direnv" = true;
};
execer = [
"cannot:${direnv}/bin/direnv"
"cannot:${nix}/bin/nix"

View File

@ -39,7 +39,8 @@ _nix() {
_require_version() {
local cmd=$1 version=$2 required=$3
if ! printf "%s\n" "$required" "$version" | sort --check=quiet --version-sort; then
_nix_direnv_fatal "minimum required $cmd version is $required (installed: $version)"
_nix_direnv_fatal \
"minimum required $(basename "$cmd") version is $required (installed: $version)"
fi
}
@ -59,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)
@ -219,7 +223,7 @@ _nix_direnv_watches() {
path=$(printf "$path")
_watches+=("$path")
fi
done < <(direnv show_dump "${DIRENV_WATCHES}")
done < <($direnv show_dump "${DIRENV_WATCHES}")
}
_nix_direnv_manual_reload=0