blob: a94fe11f648e9b6cc03187deb9f523016335ce2a (
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
{ inputs ? rec {
nixpkgs.lib = import <nixpkgs/lib> // {
nixosSystem = import <nixpkgs/nixos/lib/eval-config.nix>;
};
stockholm.overlays.default = import <stockholm/krebs/5pkgs>;
stockholm.inputs.nix-writers = <stockholm/submodules/nix-writers>;
stockholm.nixosModules =
let
inherit (nixpkgs) lib;
in builtins.listToAttrs
(map
# to preserve the file name for debugability, don't import here
(name: {name = lib.removeSuffix ".nix" name; value = (<stockholm/krebs/3modules> + "/${name}");})
(lib.filter
(name: name != "default.nix" && !lib.hasPrefix "." name)
(lib.attrNames (builtins.readDir <stockholm/krebs/3modules>))));
}
, mylib ? (import ./. { inherit (inputs.nixpkgs) lib; }).mylib
, overlays ? [
(import (inputs.stockholm.inputs.nix-writers + "/pkgs"))
(self: super: {
stockholm.lib.types = self.lib.types // {
inherit (self.mylib.types)
hostname
secret-file
;
};
inherit (inputs.stockholm.overlays.default self super)
brain
cgit-clear-cache
git-hooks
htgen
htgen-imgur
htgen-paste
irc-announce
painload
repo-sync
;
})
(self: super: {
inherit mylib;
})
(import ./pkgs)
]
, extraModules ? []
}: {
nixosConfigurations =
inputs.nixpkgs.lib.mapAttrs
(name: _: let
minimal.enable =
name == "oai";
system = (import ./systems/${name}/spec.nix).system;
in
inputs.nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
lib = inputs.nixpkgs.lib // {
# for stockholm.
# without it krebs.hosts.*.nets.*.prefix breaks for ne
# due to patched types.
slib = mylib;
};
mylib = mylib // {
importSecret =
p: _: {};
};
};
modules = [
({ lib, ... }: {
_file = "${toString ./legacy.nix} #1";
imports = lib.optionals minimal.enable [
(./systems + "/${name}/config.nix")
];
})
({ lib, mylib, ... }: {
_file = "${toString ./legacy.nix} #2";
imports = lib.optionals (!minimal.enable) [
(./systems + "/${name}/config.nix")
(let dirt = ./systems + "/${name}/dirt"; in
if builtins.pathExists dirt then dirt else {})
{
_file = "${toString ./legacy.nix} #2.1";
imports = [
inputs.stockholm.nixosModules.build
inputs.stockholm.nixosModules.dns
inputs.stockholm.nixosModules.exim
inputs.stockholm.nixosModules.exim-retiolum
inputs.stockholm.nixosModules.exim-smarthost
inputs.stockholm.nixosModules.github
inputs.stockholm.nixosModules.hosts
inputs.stockholm.nixosModules.htgen
inputs.stockholm.nixosModules.kartei
inputs.stockholm.nixosModules.krebs
inputs.stockholm.nixosModules.nixpkgs
inputs.stockholm.nixosModules.on-failure
inputs.stockholm.nixosModules.iana-etc
inputs.stockholm.nixosModules.per-user
inputs.stockholm.nixosModules.permown
inputs.stockholm.nixosModules.repo-sync
inputs.stockholm.nixosModules.secret
inputs.stockholm.nixosModules.setuid
inputs.stockholm.nixosModules.shadow
inputs.stockholm.nixosModules.sitemap
inputs.stockholm.nixosModules.ssh
inputs.stockholm.nixosModules.systemd
inputs.stockholm.nixosModules.tinc
inputs.stockholm.nixosModules.users
inputs.stockholm.nixosModules.zones
];
nixpkgs.overlays = overlays;
}
./configs
./modules
{ imports = extraModules; }
];
})
];
}
)
(builtins.readDir ./systems);
}
|