{inputs, ...}: {
flake = let
mkHost = name: cfg:
inputs.nixpkgs.lib.nixosSystem {
system = cfg.system;
specialArgs = cfg.profile.specialArgs;
modules =
cfg.profile.modules
++ cfg.modules
++ [
./hosts/${name}
../hosts/${name}
{
networking.hostName = name;
}
];
};
profiles = import ./profiles inputs;
hosts = import ./hosts profiles;
in {
nixosConfigurations = inputs.nixpkgs.lib.mapAttrs mkHost hosts;
};
}