DEVELOPMENT ENVIRONMENT

~liljamo/nix-arta

ref: 2bedbcd44cca1bbc424f78b7ecfd7a4abd9528f7 nix-arta/systems/default.nix -rw-r--r-- 1.2 KiB
2bedbcd4Jonni Liljamo feat(lxc): lxc template package 8 days ago
                                                                                
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
45
46
47
48
49
50
51
52
{
  lib,
  inputs,
  ...
}: {
  flake = let
    mkHost = name: cfg:
      inputs.nixpkgs.lib.nixosSystem {
        system = cfg.system;
        specialArgs = cfg.profile.specialArgs;
        modules =
          cfg.profile.modules
          ++ cfg.modules
          ++ [
            ./hosts/${name}
            ../hosts/${name}
            {
              networking.hostName = name;
            }
          ];
      };

    mkLXCTemplatePackage = name: cfg:
      inputs.nixos-generators.nixosGenerate {
        system = cfg.system;
        specialArgs = cfg.profile.specialArgs;
        modules =
          cfg.profile.modules
          ++ cfg.modules
          ++ [
            {
              networking.hostName = name;
            }
          ];
        format = "proxmox-lxc";
      };

    profiles = import ./profiles lib inputs;
    hosts = import ./hosts profiles;

    templatePackages = {
      lxcbase = {
        system = "x86_64-linux";
        profile = profiles.lxcbase;
        modules = [];
      };
    };
  in {
    nixosConfigurations = inputs.nixpkgs.lib.mapAttrs mkHost hosts;
    packages.x86_64-linux = inputs.nixpkgs.lib.mapAttrs mkLXCTemplatePackage templatePackages;
  };
}