mirror of
https://github.com/SebastianStork/nixos-config.git
synced 2026-01-21 12:51:34 +01:00
44 lines
1.1 KiB
Nix
44 lines
1.1 KiB
Nix
{
|
|
inputs,
|
|
self,
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
lib' = self.lib;
|
|
|
|
mkHost =
|
|
hostName:
|
|
inputs.nixpkgs.lib.nixosSystem {
|
|
specialArgs = { inherit inputs self lib'; };
|
|
modules = [
|
|
{ networking = { inherit hostName; }; }
|
|
"${self}/hosts/common.nix"
|
|
"${self}/hosts/${hostName}"
|
|
"${self}/users/seb"
|
|
]
|
|
++ lib.optional (lib.pathExists "${self}/users/seb/@${hostName}") "${self}/users/seb/@${hostName}";
|
|
};
|
|
|
|
mkDeployNode = hostname: {
|
|
hostname = "${hostname}.${
|
|
self.nixosConfigurations.${hostname}.config.custom.networking.overlay.domain
|
|
}";
|
|
user = "root";
|
|
interactiveSudo = true;
|
|
profiles.system.path =
|
|
inputs.deploy-rs.lib.x86_64-linux.activate.nixos
|
|
self.nixosConfigurations.${hostname};
|
|
};
|
|
|
|
hostNames = "${self}/hosts" |> lib'.listDirectoryNames;
|
|
in
|
|
{
|
|
flake = {
|
|
nixosConfigurations = hostNames |> lib'.genAttrs mkHost;
|
|
|
|
deploy.nodes = hostNames |> lib'.genAttrs mkDeployNode;
|
|
|
|
checks = inputs.deploy-rs.lib |> lib.mapAttrs (_: deployLib: deployLib.deployChecks self.deploy);
|
|
};
|
|
}
|