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;
|
|
|
|
shell = recUpdate {
|
|
|
|
env = evaluated.env;
|
|
|
|
packages = evaluated.packages ++ (evaluated.extraPackages pkgs);
|
|
|
|
} 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
|
|
|
}
|