summaryrefslogtreecommitdiffstats
path: root/lib/machines.nix
blob: 675326d10e0029c7c8da3e2d0381ed5cd5148b42 (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
43
44
{ lib
, pkgs
, self
, sources
, ...
}:
let
    nixos = config: import (sources.nixpkgs + "/nixos/lib/eval-config.nix") {
      modules = [
        config
        {
          documentation.enable = false;

          boot.loader.grub.device = "nodev";
          fileSystems."/".device = "tmpfs";
          nixpkgs.localSystem.system = "x86_64-linux";
        }
      ];
      specialArgs = {
        inherit
          self
          sources
          ;
      };
      system = null;
    };
in
{
  options = {
    machines = lib.mkOption {
      type = lib.types.attrsOf lib.types.raw;
      default = {};
    };
    outputs.machines = lib.mkOption {
      type = lib.types.attrsOf lib.types.raw;
      default = {};
    };
  };
  config = {
    outputs.machines = lib.mapAttrs (name: configuration:
      nixos configuration
    ) self.config.machines;
  };
}