No description
Find a file
Bryan Bennett 5e505b178b
WIP
2024-01-05 06:25:13 -05:00
bin WIP 2024-01-05 06:25:13 -05:00
lib WIP 2024-01-05 06:25:13 -05:00
tests WIP 2024-01-05 06:25:13 -05:00
default.nix WIP 2024-01-05 06:25:13 -05:00
direnvrc WIP 2024-01-05 06:25:13 -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 WIP 2024-01-05 06:25:13 -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.