#!/usr/bin/env bash version_gte() { local cmd="$1" local required_version="$2" local installed_version=$($cmd | grep -oE "[0-9]+(\.[0-9]+)+" | head -n 1) if [ -z "$installed_version" ]; then return 1 fi IFS="." set -- $installed_version local installed_parts="$@" set -- $required_version local required_parts="$@" unset IFS local i=1 for required_part in $required_parts; do installed_part=$(echo "$installed_parts" | cut -d " " -f $i) if [ "${installed_part:-0}" -lt "$required_part" ]; then return 1 elif [ "${installed_part:-0}" -gt "$required_part" ]; then return 0 fi i=$((i + 1)) done return 0 } if type nix-shell >/dev/null 2>&1; then if ! has devenv; then # Install devenv v1.x. Hash from https://www.nixhub.io/packages/devenv if version_gte "nix --version" "2.30.0"; then nix profile add github:NixOS/nixpkgs/80d901ec0377e19ac3f7bb8c035201e2e098cc97#devenv else nix profile install github:NixOS/nixpkgs/80d901ec0377e19ac3f7bb8c035201e2e098cc97#devenv fi fi eval "$(devenv direnvrc)" use devenv else echo "nix-shell is not available. Install Nix: https://nixos.org/download" fi