diff options
-rw-r--r-- | modules/programs/gnupg/default.nix | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/modules/programs/gnupg/default.nix b/modules/programs/gnupg/default.nix index 99bbebe6..e474289c 100644 --- a/modules/programs/gnupg/default.nix +++ b/modules/programs/gnupg/default.nix @@ -116,16 +116,18 @@ in { environment.LD_PRELOAD = agentWrapper hasSupervisorSupport; environment.GNUPGHOME = "~/${cfg.homeDir}"; - serviceConfig.ExecStart = toString ([ - "${cfg.package}/bin/gpg-agent" - "--pinentry-program=${pinentryWrapper}" - (if cfg.agent.scdaemon.enable - then "--scdaemon-program=${scdaemonRedirector}" - else "--disable-scdaemon") - (if hasSupervisorSupport - then "--supervised" - else "--no-detach --daemon") - ] ++ lib.optional cfg.agent.sshSupport "--enable-ssh-support"); + serviceConfig.ExecStart = let + configFile = pkgs.writeText "gpg-agent.conf" '' + pinentry-program ${pinentryWrapper} + ${if cfg.agent.scdaemon.enable + then "scdaemon-program ${scdaemonRedirector}" + else "disable-scdaemon"} + ${if hasSupervisorSupport + then "supervised" + else "no-detach\ndaemon"} + ${lib.optionalString cfg.agent.sshSupport "enable-ssh-support"} + ''; + in "${cfg.package}/bin/gpg-agent --options ${configFile}"; serviceConfig.ExecReload = toString [ "${cfg.package}/bin/gpg-connect-agent" |