about summary refs log tree commit diff
path: root/lib/mk_system.nix
blob: 2aca5509958d670040b7d6efe57a40bb672feaec (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
{ self, unstable, ... } @ args:
{
  mkSystem = { name, nixpkgs ? unstable, system ? "x86_64-linux", overlays ? null, extraModules ? null }:
    nixpkgs.lib.nixosSystem (
      let
        configFolder = "${self}/nixos";
        entryPoint = "${configFolder}/${name}/configuration.nix";
        hardware = "${configFolder}/${name}/hardware-configuration.nix";
      in
      {
        system = system;

        specialArgs = args;

        modules = [
          {
            networking.hostName = name;
            nix.flakes.enable = true;
            system.configurationRevision = self.rev or "dirty";
            documentation.man = { enable = true; generateCaches = true; };
          }
          entryPoint
          hardware
          # TODO: import all modules (use mapModules?)
          ../modules/flakes.nix
          ../modules/nix.nix
          ../modules/nixpkgs.nix
        ] ++ nixpkgs.lib.optional (overlays != null) { nixpkgs.overlays = overlays; }
        ++ nixpkgs.lib.optionals (extraModules != null) extraModules;
      }
      entryPoint
      hardware
      # TODO: import all modules (use mapModules?)
      ../modules/flakes.nix
      ../modules/nix.nix
      ../modules/nixpkgs.nix
    ] ++ nixpkgs.lib.optional (overlays != null) { nixpkgs.overlays = overlays; }
    ++ nixpkgs.lib.optionals (extraModules != null) extraModules;
  }
)