chore: clean up the inherited clutter

This commit is contained in:
oddlama 2023-02-04 02:27:39 +01:00
parent 4da937bcd0
commit 418db9db0c
No known key found for this signature in database
GPG key ID: 14EFE510775FE39A
6 changed files with 25 additions and 60 deletions

View file

@ -1,49 +1,5 @@
with builtins; let
hosts = {
nom = {
type = "nixos";
system = "x86_64-linux";
};
ward = {
type = "nixos";
system = "x86_64-linux";
};
};
filterAttrs = pred: set:
listToAttrs (concatMap (name: let
value = set.${name};
in
if pred name value
then [{inherit name value;}]
else []) (attrNames set));
removeEmptyAttrs = filterAttrs (_: v: v != {});
# TODO: so much strange shit
genSystemGroups = hosts: let
systems = ["aarch64-linux" "x86_64-linux"];
systemHostGroup = name: {
inherit name;
value = filterAttrs (_: host: host.system == name) hosts;
};
in
removeEmptyAttrs (listToAttrs (map systemHostGroup systems));
genTypeGroups = hosts: let
types = ["homeManager" "nixos"];
typeHostGroup = name: {
inherit name;
value = filterAttrs (_: host: host.type == name) hosts;
};
in
removeEmptyAttrs (listToAttrs (map typeHostGroup types));
genHostGroups = hosts: let
all = hosts;
systemGroups = genSystemGroups all;
typeGroups = genTypeGroups all;
in
all // systemGroups // typeGroups // {inherit all;};
in
genHostGroups hosts
{nixpkgs, ...}:
nixpkgs.lib.concatMapAttrs (hostName: fileType:
if fileType == "directory"
then {${hostName} = import (../hosts + "/${hostName}/meta.nix");}
else {}) (builtins.readDir ../hosts)