current
 1{
 2  lib,
 3  den,
 4  ...
 5}: {
 6  den.aspects.pardofelis.provides.ssh = {user, ...}: {
 7    nixos = {config, ...}: {
 8      vaultix.templates.ssh-host-pardofelis = {
 9        content = ''
10          HostName ${config.vaultix.placeholder.hosts-pardofelis-ipv4}
11        '';
12        owner = user.userName;
13      };
14
15      vaultix.secrets.hosts-pardofelis-ipv4.file = ./ipv4.age;
16    };
17
18    homeManager = {osConfig, ...}: {
19      programs.ssh.extraConfig = let
20        meta = den.hosts.x86_64-linux.pardofelis;
21        port = lib.elemAt meta.sshPorts 0;
22      in ''
23        ${
24          if (osConfig.services.tailscale.enable)
25          then ''
26            Match Host pardofelis exec "nc -z -w 1 ${meta.tailscaleIpv4} ${toString port} 2>/dev/null"
27              HostName ${meta.tailscaleIpv4}
28          ''
29          else ""
30        }
31        Host pardofelis
32          Port ${toString port}
33          Include ${osConfig.vaultix.templates."ssh-host-pardofelis".path}
34      '';
35    };
36  };
37}