1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2024-12-14 11:57:55 +00:00

gpg-agent: add darwin default homedir tests

This commit is contained in:
Ayman Bagabas 2024-09-30 20:06:54 +02:00
parent c255e93957
commit 4c5a83bbfa
No known key found for this signature in database
GPG key ID: C8D51D2157C919AC
4 changed files with 61 additions and 5 deletions

View file

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EnvironmentVariables</key>
<dict>
<key>GNUPGHOME</key>
<string>/home/hm-user/.gnupg</string>
</dict>
<key>KeepAlive</key>
<dict>
<key>Crashed</key>
<true/>
<key>SuccessfulExit</key>
<false/>
</dict>
<key>Label</key>
<string>org.nix-community.home.gpg-agent</string>
<key>ProcessType</key>
<string>Background</string>
<key>ProgramArguments</key>
<array>
<string>@gpg@/bin/gpgconf</string>
<string>--launch</string>
<string>gpg-agent</string>
</array>
<key>RunAtLoad</key>
<false/>
<key>Sockets</key>
<dict>
<key>Agent</key>
<dict>
<key>SockPathMode</key>
<integer>384</integer>
<key>SockPathName</key>
<string>/home/hm-user/.gnupg/S.gpg-agent</string>
<key>SockType</key>
<string>stream</string>
</dict>
</dict>
</dict>
</plist>

View file

@ -2,19 +2,31 @@
with lib;
mkIf pkgs.stdenv.isLinux {
let inherit (pkgs.stdenv) isDarwin;
in {
config = {
services.gpg-agent.enable = true;
services.gpg-agent.pinentryPackage = pkgs.pinentry-gnome3;
programs.gpg.enable = true;
services.gpg-agent.pinentryPackage =
if isDarwin then pkgs.pinentry_mac else pkgs.pinentry-gnome3;
programs.gpg = {
enable = true;
package = config.lib.test.mkStubPackage { outPath = "@gpg@"; };
};
test.stubs = {
gnupg = { };
systemd = { }; # depends on gnupg.override
pinentry-gnome3 = { };
pinentry_mac = { };
};
nmt.script = ''
nmt.script = if isDarwin then ''
serviceFile=LaunchAgents/org.nix-community.home.gpg-agent.plist
assertFileExists "$serviceFile"
assertFileContent "$serviceFile" ${./default-homedir-expected-agent.plist}
configFile=home-files/.gnupg/gpg-agent.conf
assertFileRegex $configFile "pinentry-program @pinentry_mac@/bin/dummy"
'' else ''
in="${config.systemd.user.sockets.gpg-agent.Socket.ListenStream}"
if [[ $in != "%t/gnupg/S.gpg-agent" ]]
then

View file

@ -19,7 +19,9 @@ in {
nmt.script = if isDarwin then ''
serviceFile=LaunchAgents/org.nix-community.home.gpg-agent.plist
assertFileExists "$serviceFile"
assertFileContent "$serviceFile" ${./expected-agent.plist}
assertFileContent "$serviceFile" ${
./override-homedir-expected-agent.plist
}
'' else ''
in="${config.systemd.user.sockets.gpg-agent.Socket.ListenStream}"
if [[ $in != "%t/gnupg/d.wp4h7ks5zxy4dodqadgpbbpz/S.gpg-agent" ]]