flake-compat
flake-compat copied to clipboard
Nix shell
Provide a way to create a shell.nix with the same behavior as nix develop
With nix develop behaviour, you mean setting the output environment variables to outputs/<name>?
I mostly mean installing all dependencies, and setting env variables, so make for example can build the local project via the makefile in the same folder (if it's a make project)
At the moment, an additional shell.nix file has to be added with the following content:
{ system ? builtins.currentSystem }:
(import ./. { src = ./.; inherit system; }).shellNix
In my case I needed to put:
(
import (fetchTarball https://github.com/edolstra/flake-compat/archive/master.tar.gz) {
src = builtins.fetchGit ./.;
}
).shellNix
(the solution proposed by zimbatm gave me some errors)
However, while now I can use both nix develop and nix shell, direnv is not really successful to load my environment fully. Indeed, it does export the shell variables given in shellHook, but it does not run the echo commands (useful to provide some documentation), nor the alias command. I tried both use nix and use flake, and both fail to load the alias/echo commands (note however that alias can be replaced with a script, and that this is more portable across shells, so it is not too much of a problem for now).
Hey, I'm not finding overrideAttrs on the .shellNix. Any way around that?