22 lines
646 B
Nix
22 lines
646 B
Nix
rec {
|
|
users = import ./users.nix;
|
|
|
|
adminSSHKeys = builtins.concatLists (
|
|
map (user: getSSHKeys user.name) (
|
|
builtins.filter (user: user.value.options.admin or false) (attrsToList users)
|
|
)
|
|
);
|
|
|
|
attrsToList = mapAttrsToList nameValuePair;
|
|
mapAttrsToList = f: attrs: builtins.attrValues (builtins.mapAttrs f attrs);
|
|
nameValuePair = name: value: { inherit name value; };
|
|
toList = x: if builtins.isList x then x else [ x ];
|
|
|
|
getSSHKeys =
|
|
username:
|
|
if (builtins.hasAttr "ssh" users.${username}) then
|
|
toList users.${username}.ssh
|
|
else
|
|
builtins.warn "user ${username} declared without ssh key" [ ];
|
|
}
|