18 lines
666 B
Nix
18 lines
666 B
Nix
{ lib, nixpkgs, inputs, self, ... }: rec {
|
|
getDirs = parentDir: lib.mapAttrs (n: v: import v) (lib.filterAttrs (n: v: v == "directory") (builtins.readDir parentDir));
|
|
loadInstances = dir: extraModules: lib.mapAttrs
|
|
(n: v: loadInstance v extraModules)
|
|
(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;
|
|
}
|
|
];
|
|
};
|
|
}
|