nix-configs/lib/default.nix
2025-03-23 16:15:06 +01:00

31 lines
748 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);
loadInstance =
extraModules: instance:
nixpkgs.lib.nixosSystem {
system = instance.system;
specialArgs = { inherit inputs; };
modules =
instance.modules
++ extraModules
++ [
{
nixpkgs.overlays = [ self.overlays.default ];
nixpkgs.config.allowUnfree = true;
networking.hostName = instance.hostName;
}
];
};
}