mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-01-11 20:40:24 +01:00
38 lines
1.2 KiB
Nix
38 lines
1.2 KiB
Nix
{
|
|
lib,
|
|
inputs,
|
|
...
|
|
} @ args: let
|
|
inherit (inputs) haumea;
|
|
|
|
# Contains all the flake outputs of this system architecture.
|
|
data = haumea.lib.load {
|
|
src = ./src;
|
|
inputs = args;
|
|
};
|
|
# nix file names is redundant, so we remove it.
|
|
dataWithoutPaths = builtins.attrValues data;
|
|
|
|
# Merge all the machine's data into a single attribute set.
|
|
outputs = {
|
|
nixosConfigurations = lib.attrsets.mergeAttrsList (map (it: it.nixosConfigurations or {}) dataWithoutPaths);
|
|
packages = lib.attrsets.mergeAttrsList (map (it: it.packages or {}) dataWithoutPaths);
|
|
# colmena contains some meta info, which need to be merged carefully.
|
|
colmenaMeta = {
|
|
nodeNixpkgs = lib.attrsets.mergeAttrsList (map (it: it.colmenaMeta.nodeNixpkgs or {}) dataWithoutPaths);
|
|
nodeSpecialArgs = lib.attrsets.mergeAttrsList (map (it: it.colmenaMeta.nodeSpecialArgs or {}) dataWithoutPaths);
|
|
};
|
|
colmena = lib.attrsets.mergeAttrsList (map (it: it.colmena or {}) dataWithoutPaths);
|
|
};
|
|
in
|
|
outputs
|
|
// {
|
|
inherit data; # for debugging purposes
|
|
|
|
# NixOS's unit tests.
|
|
evalTests = haumea.lib.loadEvalTests {
|
|
src = ./tests;
|
|
inputs = args // {inherit outputs;};
|
|
};
|
|
}
|