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.
master
Luke Worth 2021-06-08 10:40:10 +10:00
parent f63332768e
commit 03310df843
No known key found for this signature in database
GPG Key ID: 20B009241794263A
1 changed files with 12 additions and 2 deletions

View File

@ -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"
'';