29 lines
561 B
Nix
29 lines
561 B
Nix
{
|
|
lib,
|
|
config,
|
|
inputs,
|
|
...
|
|
}:
|
|
let
|
|
inherit (builtins) mapAttrs;
|
|
inherit (lib) mkOption;
|
|
inherit (lib.types) lazyAttrsOf submodule;
|
|
cfg = config.hostSpec;
|
|
hostOptions = submodule { };
|
|
mkSystem =
|
|
hostName: _hostConfig:
|
|
inputs.nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [ { networking = { inherit hostName; }; } ];
|
|
};
|
|
in
|
|
{
|
|
options.hostSpec.hosts = mkOption {
|
|
type = lazyAttrsOf hostOptions;
|
|
default = { };
|
|
};
|
|
|
|
config = {
|
|
flake.nixosConfigurations = mapAttrs mkSystem cfg.hosts;
|
|
};
|
|
}
|