No description
Find a file
2024-01-03 14:05:31 -05:00
bin Add flake input tracking 2023-12-29 15:34:44 -05:00
lib Bugfix: Add separator when calling Lib.Util.nix 2024-01-03 14:05:31 -05:00
default.nix Add source filtering 2023-12-30 14:26:12 -05:00
direnvrc Get environment restoration working 2023-12-22 08:32:07 -05:00
dune-project Initial commit 2023-12-21 09:36:09 -05:00
flake.lock Add source filtering 2023-12-30 14:26:12 -05:00
flake.nix Fix overlay to include nix-filter 2023-12-31 16:26:55 -05:00
flake_env.opam Initial commit 2023-12-21 09:36:09 -05:00
LICENSE Initial commit 2023-12-21 09:36:09 -05:00
README.md Initial commit 2023-12-21 09:36:09 -05:00

flake_env

Yet another direnv plugin for flakes. This one is kind of experimental.

Why not nix-direnv?

I am one of the core contributors on nix_direnv, but wanted to try a new approach.

nix-direnv got held up a bit by depending on differing behaviors of external programs not shipped with bash (or things that are shipped with bash, but a differing implementation ended up in front of the bash version in PATH).

This is an attempt to simplify a bit. I ported the nix-direnv use_flake function to ReasonML. Implementing most things by hand in ReasonML is pretty simple and (more importantly) portable. This removes most of the dependencies besides bash and nix. The bash that exists is pretty portable between versions, since it only does environment manipulation.

Installation & Usage

Installation

These details are evolving. I'll make sure to update this document when things change.

For now, there is no NixOS, nix-darwin, or home-manager module that points at this tool. The only thing you can really do is use this repo's flake as an input. Then you'll probably need to source ${flake_env}/share/flake_env/direnvrc. You should be able to do that with:

  • programs.direnv.direnvrcExtra on NixOS
  • programs.direnv.stdlib if using home-manager

Usage

Example .envrc:

watch_file **/*.nix
use flake_env .

Credits

This takes huge inspiration (and literal code-chunks) from nix-direnv. Thanks to Mic92 for nix-direnv and kingarrrt for their recent contributions.