dotfiles/shell-modules/default.nix

48 lines
1.0 KiB
Nix
Raw Normal View History

2025-02-09 00:11:07 +00:00
{
nixpkgs,
flake-utils,
...
}:
2025-02-08 20:52:42 +00:00
2025-02-08 22:06:32 +00:00
let
imports = [
2025-02-09 00:11:07 +00:00
./shell.nix
2025-02-08 22:07:08 +00:00
./languages/python.nix
2025-02-09 22:53:27 +00:00
./languages/rust.nix
2025-02-09 00:11:07 +00:00
./utilities/cuda.nix
2025-02-09 01:19:49 +00:00
./utilities/jupyter.nix
2025-02-08 20:52:42 +00:00
];
2025-02-08 22:06:32 +00:00
in
{
mkShell =
attrs:
(flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
2025-02-09 00:11:07 +00:00
evaluated =
(nixpkgs.lib.evalModules {
modules = [ attrs ] ++ imports;
specialArgs = {
pkgs = pkgs;
};
}).config;
recUpdate = nixpkgs.lib.recursiveUpdate;
2025-02-09 23:31:08 +00:00
libPackages = evaluated.libPackages pkgs;
2025-02-09 00:11:07 +00:00
shell = recUpdate {
2025-02-09 23:31:08 +00:00
env = evaluated.env // {
LD_LIBRARY_PATH = (nixpkgs.lib.mkIf (libPackages != [ ]) (nixpkgs.lib.makeLibraryPath libPackages));
};
packages = evaluated.packages ++ (evaluated.extraPackages pkgs) ++ libPackages;
2025-02-09 00:11:07 +00:00
} evaluated.override;
2025-02-08 22:06:32 +00:00
in
{
2025-02-09 00:11:07 +00:00
devShells.default = pkgs.mkShell shell;
2025-02-08 22:06:32 +00:00
}
));
2025-02-08 20:52:42 +00:00
}