mirror of
https://github.com/RGBCube/ncc
synced 2025-07-29 02:57:44 +00:00
48 lines
1.1 KiB
Nix
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;
|
|
};
|
|
}
|