25 lines
685 B
Nix
25 lines
685 B
Nix
{ config, lib, sane-data, sane-lib, ... }:
|
|
|
|
{
|
|
sane.ssh.pubkeys =
|
|
let
|
|
# path is a DNS-style path like [ "org" "uninsane" "root" ]
|
|
keyNameForPath = path:
|
|
let
|
|
rev = lib.reverseList path;
|
|
name = builtins.head rev;
|
|
host = lib.concatStringsSep "." (builtins.tail rev);
|
|
in
|
|
"${name}@${host}";
|
|
|
|
# [{ path :: [String], value :: String }] for the keys we want to install
|
|
globalKeys = sane-lib.flattenAttrs sane-data.keys;
|
|
localKeys = sane-lib.flattenAttrs sane-data.keys.org.uninsane.local;
|
|
in lib.mkMerge (builtins.map
|
|
({ path, value }: {
|
|
"${keyNameForPath path}" = value;
|
|
})
|
|
(globalKeys ++ localKeys)
|
|
);
|
|
}
|