summaryrefslogtreecommitdiff
path: root/util/host.nix
blob: 869b674531de1a5274e158305a201f8a7822bf46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{home-manager, ...}: {
	mkHost = {
		name,
		modules,
		system ? "x86_64-linux",
		specialArgs ? {},
		version ? "22.11",
		pkgs,
	}: {
		${name} = with pkgs.lib;
			nixosSystem {
				inherit system specialArgs;
				modules =
					[
						../hosts/common
						../hosts/${name}

						({pkgs, ...}: {
							system.stateVersion = version;
							networking.hostName = mkDefault name;
							# enable non-free packages
							nixpkgs.config.allowUnfree = true;

							# Enable nix flakes
							nix.package = pkgs.nixFlakes;
							nix.settings.experimental-features = ["nix-command" "flakes"];
						})

						home-manager.nixosModules.home-manager
						{
							home-manager = {
								useGlobalPkgs = true;
								useUserPackages = true;
								extraSpecialArgs = specialArgs;
							};
						}
					]
					++ modules;
			};
	};
}