2023-01-09 02:40:25 +00:00
|
|
|
{ config, lib, sane-data, sane-lib, ... }:
|
2023-01-08 03:22:05 +00:00
|
|
|
|
2023-01-09 02:40:25 +00:00
|
|
|
{
|
|
|
|
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}";
|
2023-01-08 03:22:05 +00:00
|
|
|
|
2023-01-09 03:48:07 +00:00
|
|
|
# [{ 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)
|
|
|
|
);
|
2022-10-25 09:09:27 +00:00
|
|
|
}
|