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
|
{
self,
system,
myPkgs,
nixpkgs_as_input,
nixpkgs_open_prs,
# my things
shell_library,
sysLib,
templates,
# modules
home-manager,
nixVim,
nixos-generators,
impermanence,
agenix,
ragenix,
serverphone,
disko,
lanzaboote,
nix-index-database,
# bins
river_init_lesser,
# external
user_js,
}: let
modules = [
"${nixpkgs_open_prs.nixpkgs-tfc}/nixos/modules/config/xdg/portals/termfilechooser.nix"
agenix.nixosModules.default
disko.nixosModules.default
home-manager.nixosModules.home-manager
impermanence.nixosModules.impermanence
lanzaboote.nixosModules.lanzaboote
serverphone.nixosModules.default
# Deduplicate some code in the host files
../../modules/system
];
specialArgs = {
inherit
# extra package sources
nixpkgs_open_prs
myPkgs
shell_library
sysLib
# extra information
system
# modules
impermanence
nix-index-database
nixVim
# nix registry
nixpkgs_as_input
self
templates
# bins
# TODO: Integrate these into `pkgs/by-name` <2024-05-22>
river_init_lesser
serverphone
# external deps
user_js
;
};
generateHost = name: {
name = "${name}";
value = nixpkgs_as_input.lib.nixosSystem {
inherit specialArgs;
modules =
[
../../hosts/${name}
]
++ modules;
};
};
# FIXME: These need to stay in this position for the install script
hosts = ["tiamat" "apzu"];
inactiveHosts = ["mammun" "lahmu"];
generatedHosts = builtins.listToAttrs (builtins.map generateHost hosts);
in
generatedHosts
|