summaryrefslogtreecommitdiff
path: root/util/host.nix
blob: 2c7906cfb985589c9920832388f31e73df140e11 (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
_: {
  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;
                allowUnsupportedSystem = true;
              };

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