mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-10 04:49:19 -08:00
25 lines
692 B
Nix
25 lines
692 B
Nix
{
|
|
inputs,
|
|
tree,
|
|
}: let
|
|
nixlib = inputs.nixpkgs.lib;
|
|
inherit (nixlib.attrsets) filterAttrs mapAttrsToList;
|
|
inherit (nixlib.lists) sortOn;
|
|
inherit (inputs.self.lib.lib) userIs;
|
|
templateSystem = inputs.self.nixosConfigurations.reimu;
|
|
templateUsers = filterAttrs (_: userIs "peeps") templateSystem.config.users.users;
|
|
mkNodeUsers = users: let
|
|
nodeUsers = mapAttrsToList (_: mkNodeUser) templateUsers;
|
|
in sortOn (user: user.uid) nodeUsers;
|
|
mkNodeUser = user: {
|
|
inherit (user) name uid;
|
|
authorizedKeys = user.openssh.authorizedKeys.keys;
|
|
};
|
|
mkNode = {
|
|
name,
|
|
}: {
|
|
users = mkNodeUsers templateUsers;
|
|
};
|
|
in {
|
|
reisen = mkNode { name = "reisen"; };
|
|
}
|