`nix-direnv` depends on `nixUnstable` for flakes support, but that causes it to print a warning unless your user is trusted or the `experimental-features` setting is enabled. Neither of these are desirable (note that setting `experimental-features` in nix.conf causes warnings on `nixStable`). Since flakes are experimental, this commit makes `nixStable` the default and optionally allows `nixUnstable` with a new flag `enableFlakes`, prioritising a good experience for users not using experimental features.
45 lines
1 KiB
Nix
45 lines
1 KiB
Nix
{ lib
|
|
, stdenv
|
|
, fetchFromGitHub
|
|
, gnugrep
|
|
, nixStable
|
|
, nixUnstable
|
|
, enableFlakes ? false
|
|
}:
|
|
|
|
let
|
|
nix = if enableFlakes then nixUnstable else nixStable;
|
|
in
|
|
stdenv.mkDerivation rec {
|
|
pname = "nix-direnv";
|
|
version = "1.2.6";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "nix-community";
|
|
repo = "nix-direnv";
|
|
rev = version;
|
|
sha256 = "sha256-0dCIHgoyNgpxbrPDv26oLdU+npcIgpCQdpX4HzS0vN0=";
|
|
};
|
|
|
|
# Substitute instead of wrapping because the resulting file is
|
|
# getting sourced, not executed:
|
|
postPatch = ''
|
|
sed -i "1a NIX_BIN_PREFIX=${nix}/bin/" direnvrc
|
|
substituteInPlace direnvrc --replace "grep" "${gnugrep}/bin/grep"
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
install -m500 -D direnvrc $out/share/nix-direnv/direnvrc
|
|
runHook postInstall
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "A fast, persistent use_nix implementation for direnv";
|
|
homepage = "https://github.com/nix-community/nix-direnv";
|
|
license = licenses.mit;
|
|
platforms = platforms.unix;
|
|
maintainers = with maintainers; [ mic92 ];
|
|
};
|
|
}
|