old
1{
2 lib,
3 inputs,
4 ...
5} @ args: let
6 inherit (inputs) haumea;
7
8 # Contains all the flake outputs of this system architecture.
9 data = haumea.lib.load {
10 src = ./src;
11 inputs = args;
12 };
13 # nix file names is redundant, so we remove it.
14 dataWithoutPaths = builtins.attrValues data;
15
16 # Merge all the machine's data into a single attribute set.
17 outputs = {
18 nixosConfigurations = lib.attrsets.mergeAttrsList (map (it: it.nixosConfigurations or {}) dataWithoutPaths);
19 packages = lib.attrsets.mergeAttrsList (map (it: it.packages or {}) dataWithoutPaths);
20
21 colmenaMeta = {
22 nodeNixpkgs = lib.attrsets.mergeAttrsList (map (it: it.colmenaMeta.nodeNixpkgs or {}) dataWithoutPaths);
23 nodeSpecialArgs = lib.attrsets.mergeAttrsList (map (it: it.colmenaMeta.nodeSpecialArgs or {}) dataWithoutPaths);
24 };
25
26 colmena = lib.attrsets.mergeAttrsList (map (it: it.colmena or {}) dataWithoutPaths);
27 };
28in
29 outputs
30 // {
31 inherit data;
32 }