From 03310df843a344215b45b2e8aef11ae9402a40e2 Mon Sep 17 00:00:00 2001 From: Luke Worth Date: Tue, 8 Jun 2021 10:40:10 +1000 Subject: [PATCH] nix-direnv: make flakes support optional `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. --- pkgs/tools/misc/nix-direnv/default.nix | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/misc/nix-direnv/default.nix b/pkgs/tools/misc/nix-direnv/default.nix index 94ce54a2a9a..526efc65f6a 100644 --- a/pkgs/tools/misc/nix-direnv/default.nix +++ b/pkgs/tools/misc/nix-direnv/default.nix @@ -1,5 +1,15 @@ -{ lib, stdenv, fetchFromGitHub, gnugrep, nixUnstable }: +{ 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"; @@ -14,7 +24,7 @@ stdenv.mkDerivation rec { # Substitute instead of wrapping because the resulting file is # getting sourced, not executed: postPatch = '' - sed -i "1a NIX_BIN_PREFIX=${nixUnstable}/bin/" direnvrc + sed -i "1a NIX_BIN_PREFIX=${nix}/bin/" direnvrc substituteInPlace direnvrc --replace "grep" "${gnugrep}/bin/grep" '';