Alternative option for allowing a user to automatically configure what binary to use from a `pinentry` package. Previously, we always used `meta.mainProgram` but, there are packages that provide multiple binaries and this would allow flexibility for a user to override the default program used.
39 lines
985 B
Nix
39 lines
985 B
Nix
{
|
|
config,
|
|
lib,
|
|
options,
|
|
pkgs,
|
|
...
|
|
}:
|
|
|
|
lib.mkIf pkgs.stdenv.isLinux {
|
|
services.gpg-agent.enable = true;
|
|
services.gpg-agent.pinentryPackage = pkgs.pinentry-gnome3;
|
|
programs.gpg.enable = true;
|
|
|
|
test.asserts.warnings.expected =
|
|
let
|
|
renamed = {
|
|
pinentryPackage = "pinentry.package";
|
|
};
|
|
in
|
|
lib.mapAttrsToList (
|
|
old: new:
|
|
builtins.replaceStrings [ "\n" ] [ " " ] ''
|
|
The option `services.gpg-agent.${old}' defined in
|
|
${lib.showFiles options.services.gpg-agent.${old}.files}
|
|
has been renamed to `services.gpg-agent.${new}'.''
|
|
) renamed;
|
|
|
|
nmt.script = ''
|
|
in="${config.systemd.user.sockets.gpg-agent.Socket.ListenStream}"
|
|
if [[ $in != "%t/gnupg/S.gpg-agent" ]]
|
|
then
|
|
echo $in
|
|
fail "gpg-agent socket directory not set to default value"
|
|
fi
|
|
|
|
configFile=home-files/.gnupg/gpg-agent.conf
|
|
assertFileRegex $configFile "pinentry-program @pinentry-gnome3@/bin/pinentry"
|
|
'';
|
|
}
|