Files
nixos/lib/mkHost.nix
T

49 lines
1010 B
Nix

{
nixpkgs,
home-manager,
inputs,
}:
{
hostname,
hostName ? hostname,
systemStateVersion ? "25.05",
system,
profile,
username,
extraModules ? [ ],
extraSpecialArgs ? { },
homeModules ? [ ../home ],
homeStateVersion ? "25.05",
useSops ? true,
}:
nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs system username;
}
// extraSpecialArgs;
modules = [
../hosts/${hostname}
../profiles/${profile}.nix
{
networking.hostName = hostName;
system.stateVersion = systemStateVersion;
}
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {
inherit inputs system;
};
home-manager.users.${username} = {
home.stateVersion = homeStateVersion;
imports = homeModules;
};
}
]
++ nixpkgs.lib.optionals useSops [ inputs.sops-nix.nixosModules.sops ]
++ extraModules;
}