ides/default.nix
2025-02-07 15:12:17 +11:00

51 lines
913 B
Nix

# import stage args
{
pkgs ? import <nixpkgs>,
shell ? pkgs.mkShell,
modules ? [ ],
auto ? true,
...
}:
# shell creation args
{
services ? { },
imports ? [ ],
serviceDefs ? { },
...
}@args:
let
# filter ides args out
# for passthrough to mkShell
shellArgs = builtins.removeAttrs args [
"services"
"serviceDefs"
"imports"
];
# include some premade services
baseModules = [ ./modules/redis.nix ];
# eval the config
eval = pkgs.lib.evalModules {
modules =
[
# ides
./lib/ides.nix
# service config and build params
(_: {
inherit services serviceDefs auto;
_buildIdes.shellFn = shell;
_buildIdes.shellArgs = shellArgs;
})
]
++ baseModules
++ modules
++ imports;
specialArgs = {
inherit pkgs;
};
class = "ides";
};
in
eval.config._buildIdes.shell