From 73f5a5ecc91c6bef63db849d6d2dafa9dde7c691 Mon Sep 17 00:00:00 2001 From: Benedikt Rips Date: Sat, 3 Jan 2026 16:23:22 +0100 Subject: [PATCH] ssh-agent: fix Nushell's check for emptiness Previously, it would not succeed if `$env.SSH_AUTH_SOCK` is set to an empty string. --- modules/services/ssh-agent.nix | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/modules/services/ssh-agent.nix b/modules/services/ssh-agent.nix index 8bb68a40..1e443d4b 100644 --- a/modules/services/ssh-agent.nix +++ b/modules/services/ssh-agent.nix @@ -70,18 +70,19 @@ in ''; nushellIntegration = - if pkgs.stdenv.isDarwin then - '' - if "SSH_AUTH_SOCK" not-in $env { - $env.SSH_AUTH_SOCK = $"(${lib.getExe pkgs.getconf} DARWIN_USER_TEMP_DIR)/${cfg.socket}" - } - '' - else - '' - if "SSH_AUTH_SOCK" not-in $env { - $env.SSH_AUTH_SOCK = $"($env.XDG_RUNTIME_DIR)/${cfg.socket}" - } - ''; + let + unsetOrEmpty = var: ''("${var}" not-in $env) or ($env.${var} | is-empty)''; + socketPath = + if pkgs.stdenv.isDarwin then + ''$"(${lib.getExe pkgs.getconf} DARWIN_USER_TEMP_DIR)/${cfg.socket}"'' + else + ''$"($env.XDG_RUNTIME_DIR)/${cfg.socket}"''; + in + '' + if ${unsetOrEmpty "SSH_AUTH_SOCK"} { + $env.SSH_AUTH_SOCK = ${socketPath} + } + ''; in { # $SSH_AUTH_SOCK has to be set early since other tools rely on it