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?