This commit refactors configurations.nix and lib/default.nix by removing the extractConfigurations function and related code from lib/default.nix, and moving the NixOS system building logic directly into configurations.nix. It also changes the structure of hosts in manifest.nix to use a hosts.nixos attribute.
31 lines
604 B
Nix
31 lines
604 B
Nix
{
|
|
config,
|
|
lib,
|
|
inputs,
|
|
...
|
|
}:
|
|
let
|
|
inherit (lib) nixosSystem;
|
|
inherit (cfg.lib) flattenAttrs;
|
|
inherit (lib.attrsets) mapAttrs;
|
|
cfg = config.flake;
|
|
hosts = cfg.manifest.hosts or { };
|
|
mkConfigurations =
|
|
class: hosts:
|
|
mapAttrs (
|
|
_: value:
|
|
if class == "nixos" then
|
|
nixosSystem {
|
|
specialArgs = { inherit inputs; };
|
|
modules = [
|
|
(flattenAttrs cfg.modules.nixos)
|
|
(value.extraCfg or { })
|
|
];
|
|
}
|
|
else
|
|
{ }
|
|
) hosts;
|
|
in
|
|
{
|
|
flake.nixosConfigurations = mkConfigurations "nixos" hosts.nixos;
|
|
}
|