2019-10-25 17:12:40 +02:00
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
|
|
|
|
with lib;
|
|
|
|
|
2024-09-01 03:12:16 +02:00
|
|
|
let inherit (pkgs.stdenv) isDarwin;
|
|
|
|
in {
|
2019-10-25 17:12:40 +02:00
|
|
|
config = {
|
|
|
|
services.gpg-agent.enable = true;
|
2024-01-14 18:09:06 +01:00
|
|
|
services.gpg-agent.pinentryPackage = null; # Don't build pinentry package.
|
2019-10-25 17:12:40 +02:00
|
|
|
programs.gpg = {
|
|
|
|
enable = true;
|
2021-11-25 19:28:18 +01:00
|
|
|
homedir = "/path/to/hash";
|
2024-09-01 03:12:16 +02:00
|
|
|
package = config.lib.test.mkStubPackage { outPath = "@gpg@"; };
|
2019-10-25 17:12:40 +02:00
|
|
|
};
|
|
|
|
|
2021-09-26 11:08:45 +02:00
|
|
|
test.stubs.gnupg = { };
|
2023-02-19 11:19:00 +01:00
|
|
|
test.stubs.systemd = { }; # depends on gnupg.override
|
2019-10-25 17:12:40 +02:00
|
|
|
|
2024-09-01 03:12:16 +02:00
|
|
|
nmt.script = if isDarwin then ''
|
|
|
|
serviceFile=LaunchAgents/org.nix-community.home.gpg-agent.plist
|
|
|
|
assertFileExists "$serviceFile"
|
|
|
|
assertFileContent "$serviceFile" ${./expected-agent.plist}
|
|
|
|
'' else ''
|
2019-10-25 17:12:40 +02:00
|
|
|
in="${config.systemd.user.sockets.gpg-agent.Socket.ListenStream}"
|
2021-11-25 19:28:18 +01:00
|
|
|
if [[ $in != "%t/gnupg/d.wp4h7ks5zxy4dodqadgpbbpz/S.gpg-agent" ]]
|
2019-10-25 17:12:40 +02:00
|
|
|
then
|
|
|
|
echo $in
|
|
|
|
fail "gpg-agent socket directory is malformed"
|
|
|
|
fi
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
}
|