1
Fork 0
mirror of https://github.com/RGBCube/ncc synced 2025-07-30 03:27:45 +00:00

Start refactor

This commit is contained in:
RGBCube 2025-01-11 15:51:21 +03:00
parent 99b7ccfadb
commit 06cce18e72
155 changed files with 2139 additions and 3738 deletions

53
lib/system.nix Normal file
View file

@ -0,0 +1,53 @@
inputs: self: super: let
inherit (self) attrValues filter getAttrFromPath hasAttrByPath hasSuffix;
inherit (self.filesystem) listFilesRecursive;
collect = path: listFilesRecursive path
|> filter (hasSuffix ".nix");
commonModules = collect ../modules/common;
nixosModules = collect ../modules/nixos;
darwinModules = collect ../modules/darwin;
collectInputs = let
inputs' = attrValues inputs;
in path: inputs'
|> filter (hasAttrByPath path)
|> map (getAttrFromPath path);
inputNixosModules = collectInputs [ "nixosModules" "default" ];
inputDarwinModules = collectInputs [ "darwinModules" "default" ];
inputOverlays = collectInputs [ "overlays" "default" ];
overlayModule = { nixpkgs.overlays = inputOverlays; };
in {
nixosSystem = module: super.nixosSystem {
modules = [
module
overlayModule
] ++ commonModules
++ nixosModules
++ inputNixosModules;
specialArgs = inputs // {
inherit inputs;
lib = self;
};
};
darwinSystem = module: super.darwinSystem {
modules = [
module
overlayModule
] ++ commonModules
++ darwinModules
++ inputDarwinModules;
specialArgs = inputs // {
inherit inputs;
lib = self;
};
};
}