mirror of
https://github.com/nix-community/home-manager
synced 2024-12-29 13:19:47 +01:00
ef50612457
This adds a Darwin Launchd agent along with its sockets to make gpg-agent starts at load or whenever the sockets are needed. Fixes: https://github.com/nix-community/home-manager/issues/3864
32 lines
927 B
Nix
32 lines
927 B
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
with lib;
|
|
|
|
let inherit (pkgs.stdenv) isDarwin;
|
|
in {
|
|
config = {
|
|
services.gpg-agent.enable = true;
|
|
services.gpg-agent.pinentryPackage = null; # Don't build pinentry package.
|
|
programs.gpg = {
|
|
enable = true;
|
|
homedir = "/path/to/hash";
|
|
package = config.lib.test.mkStubPackage { outPath = "@gpg@"; };
|
|
};
|
|
|
|
test.stubs.gnupg = { };
|
|
test.stubs.systemd = { }; # depends on gnupg.override
|
|
|
|
nmt.script = if isDarwin then ''
|
|
serviceFile=LaunchAgents/org.nix-community.home.gpg-agent.plist
|
|
assertFileExists "$serviceFile"
|
|
assertFileContent "$serviceFile" ${./expected-agent.plist}
|
|
'' else ''
|
|
in="${config.systemd.user.sockets.gpg-agent.Socket.ListenStream}"
|
|
if [[ $in != "%t/gnupg/d.wp4h7ks5zxy4dodqadgpbbpz/S.gpg-agent" ]]
|
|
then
|
|
echo $in
|
|
fail "gpg-agent socket directory is malformed"
|
|
fi
|
|
'';
|
|
};
|
|
}
|