1
Fork 0
mirror of https://github.com/RGBCube/ncc synced 2025-07-29 02:57:44 +00:00
ncc/lib/system.nix
2025-05-01 02:19:42 +03:00

48 lines
1.1 KiB
Nix

inputs: self: super: let
inherit (self) attrValues filter getAttrFromPath hasAttrByPath collectNix;
modulesCommon = collectNix ../modules/common;
modulesLinux = collectNix ../modules/linux;
modulesDarwin = collectNix ../modules/darwin;
collectInputs = let
inputs' = attrValues inputs;
in path: inputs'
|> filter (hasAttrByPath path)
|> map (getAttrFromPath path);
inputModulesLinux = collectInputs [ "nixosModules" "default" ];
inputModulesDarwin = collectInputs [ "darwinModules" "default" ];
inputOverlays = collectInputs [ "overlays" "default" ];
overlayModule = { nixpkgs.overlays = inputOverlays; };
specialArgs = inputs // {
inherit inputs;
keys = import ../keys.nix;
lib = self;
};
in {
nixosSystem' = module: super.nixosSystem {
inherit specialArgs;
modules = [
module
overlayModule
] ++ modulesCommon
++ modulesLinux
++ inputModulesLinux;
};
darwinSystem' = module: super.darwinSystem {
inherit specialArgs;
modules = [
module
overlayModule
] ++ modulesCommon
++ modulesDarwin
++ inputModulesDarwin;
};
}