devenv: Just require Nix v2.4 or newer.

This commit is contained in:
Samir Talwar 2022-01-05 11:21:00 +01:00
parent 840fb729b2
commit ed442fa8ae
No known key found for this signature in database
GPG Key ID: 1A1EA164522D865B

View File

@ -27,27 +27,17 @@ errcho() {
>&2 echo "[dev-env] $*"
}
get_nix_version() {
local current
current="$(nix-env --version)"
if [[ "$current" =~ ([0-9])[.]([0-9]+)([.]([0-9]+))?$ ]]; then
echo "${BASH_REMATCH[1]}.${BASH_REMATCH[2]}.${BASH_REMATCH[4]:-0}"
else
errcho "WARNING: Unexpected output of 'nix-env --version' ($current), dev-env might not work properly."
return 1
fi
}
check_nix_version() {
# Keep in sync with dade-nix-install.
NIX_MAJOR="$1"
NIX_MINOR="$2"
NIX_PATCH="$3"
if current="$(get_nix_version)"; then
[[ "$current" =~ ([0-9])[.]([0-9]+)[.]([0-9]+)$ ]]
local current
current=$(nix-env --version)
if [[ $current =~ ([0-9])[.]([0-9]+)([.]([0-9]+))? ]]; then
local current_major="${BASH_REMATCH[1]}"
local current_minor="${BASH_REMATCH[2]}"
local current_patch="${BASH_REMATCH[3]}"
local current_patch="${BASH_REMATCH[4]:-0}"
if [[ $current_major -lt $NIX_MAJOR ]] ||
[[ $current_major -eq $NIX_MAJOR && $current_minor -lt $NIX_MINOR ]] ||
[[ $current_major -eq $NIX_MAJOR && $current_minor -eq $NIX_MINOR && $current_patch -lt $NIX_PATCH ]];
@ -55,6 +45,8 @@ check_nix_version() {
errcho "WARNING: Version ${current_major}.${current_minor}.${current_patch} detected, but ${NIX_MAJOR}.${NIX_MINOR}.${NIX_PATCH} or higher required."
errcho "Please run 'nix upgrade-nix' or 'curl -sSfL https://nixos.org/nix/install | sh' to update Nix."
fi
else
errcho "WARNING: Unexpected output of 'nix-env --version' ($current), dev-env might not work properly."
fi
}
@ -79,7 +71,7 @@ source "$(dirname "${BASH_SOURCE[0]}")/ensure-nix"
# shellcheck source=./ensure-nix
source "$(dirname "${BASH_SOURCE[0]}")/ensure-nix"
: "${DADE_DESIRED_NIX_VERSION:=2 1 3}"
: "${DADE_DESIRED_NIX_VERSION:=2 4 0}"
check_nix_version $DADE_DESIRED_NIX_VERSION
# If the user has no channels configured, then NIX_PATH might point
@ -107,12 +99,7 @@ source "$(dirname "${BASH_SOURCE[0]}")/ensure-nix"
echo "source $(dirname "${BASH_SOURCE[0]}")/ensure-nix"
# Expose our tools in /dev-env/bin and our version of nixpkgs
if [[ "$("${DADE_DEVENV_DIR}/bin/semver" compare "$(get_nix_version)" '2.4.0')" -ge 0 ]]; then
echo "export NIX_USER_CONF_FILES=\"${DADE_DEVENV_DIR}/etc/nix.conf:\${NIX_USER_CONF_FILES}:\${XDG_CONFIG_HOME:-\${HOME}/.config}/nix/nix.conf\""
else
# On an old version of Nix, overwrite the system config, as we can't support multiple config files.
echo "export NIX_CONF_DIR=\"${DADE_DEVENV_DIR}/etc\""
fi
echo "export NIX_USER_CONF_FILES=\"${DADE_DEVENV_DIR}/etc/nix.conf:\${NIX_USER_CONF_FILES}:\${XDG_CONFIG_HOME:-\${HOME}/.config}/nix/nix.conf\""
echo "export NIX_PATH=nixpkgs=\"${DADE_NIXPKGS}\""
echo "export PATH=\"${DADE_DEVENV_DIR}/bin:\$PATH\""
echo "export PYTHONPATH=\".\${PYTHONPATH:+:\$PYTHONPATH}\""