nix-configs/lib/default.nix
2025-07-29 03:02:25 +02:00

31 lines
794 B
Nix

{
lib,
nixpkgs,
inputs,
self,
...
}:
rec {
getDirs =
parentDir:
lib.mapAttrs (n: v: (import "${parentDir}/${n}")) (
lib.filterAttrs (n: v: v == "directory") (builtins.readDir parentDir)
);
loadInstances =
dir: extraModules: lib.mapAttrs (n: v: loadInstance extraModules v (getDirs dir)) (getDirs dir);
loadInstance =
extraModules: instance: instanceConfigs:
nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs instanceConfigs; instanceConfig = instance; };
modules =
instance.modules
++ extraModules
++ [
{
nixpkgs.overlays = [ self.overlays.default ];
nixpkgs.config.allowUnfree = true;
networking.hostName = instance.hostName;
}
];
};
}