summaryrefslogtreecommitdiff
path: root/util/host.nix
blob: a00856693917ef9252876157aa40a15fc57c66b6 (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
42
{ 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;
        };
    };
}