From c3e64d4b842133813ce7899c06c7f6e898286055 Mon Sep 17 00:00:00 2001 From: Sean Buckley Date: Sun, 11 Jun 2023 14:20:11 -0400 Subject: [PATCH] gen-ssh-config: allow arbitrary ssh configs --- lib/gen-ssh-config.nix | 7 +++++-- modules/deploy.nix | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/gen-ssh-config.nix b/lib/gen-ssh-config.nix index 495ea7b..a60ee08 100644 --- a/lib/gen-ssh-config.nix +++ b/lib/gen-ssh-config.nix @@ -5,11 +5,14 @@ let sshKnownHostsTxt = builtins.toFile "known_hosts" (lib.concatMapStrings (hostName: let d = nixosConfigurations.${hostName}.config.deploy; - in lib.concatMapStrings (key: "${d.targetHost} ${key}\n") d.sshPublicKeys + in lib.concatMapStrings (key: "${d.ssh.HostName} ${key}\n") d.sshPublicKeys ) (builtins.attrNames nixosConfigurations) ); + attrsToList = lib.mapAttrsToList (n: v: "${n} ${v}"); + attrsToLines = a: lib.concatLines (attrsToList a); + in builtins.toFile "ssh-config" ('' StrictHostKeyChecking yes @@ -18,6 +21,6 @@ builtins.toFile "ssh-config" ('' lib.concatMapStrings (host: '' Host ${host} - HostName ${nixosConfigurations.${host}.config.deploy.targetHost} + ${attrsToLines nixosConfigurations.${host}.config.deploy.ssh} '') (builtins.attrNames nixosConfigurations)) diff --git a/modules/deploy.nix b/modules/deploy.nix index e2a59ea..a9e3e9c 100644 --- a/modules/deploy.nix +++ b/modules/deploy.nix @@ -4,8 +4,8 @@ sshPublicKeys = lib.mkOption { type = lib.types.listOf lib.types.str; }; - targetHost = lib.mkOption { - type = lib.types.str; + ssh = lib.mkOption { + type = lib.types.attrsOf lib.types.str; }; tags = lib.mkOption { type = lib.types.listOf lib.types.str;