git: sendemail: add realName inside From field

We currently have no way of specifying the sender's name inside
the From field, making a patch sent through `git send-email` appear
as coming from "xxx@domain.com".

In this commit we make this field follow the standard `realName <email>`
format, whenever applicable.

Signed-off-by: Léo DUBOIN <leo@duboin.com>
This commit is contained in:
Léo DUBOIN 2024-04-26 23:01:04 +02:00
parent 0c5704ecee
commit 2e339cc6da
No known key found for this signature in database
GPG Key ID: 0958BE3F44DE460A
5 changed files with 17 additions and 8 deletions

View File

@ -407,7 +407,10 @@ in {
mkIf smtp.tls.enable (toString smtp.tls.certificatesFile);
smtpServer = smtp.host;
smtpUser = userName;
from = address;
from = if (builtins.stringLength realName == 0) then
address
else
"${realName} <${address}>";
} // optionalAttrs (smtp.port != null) {
smtpServerPort = smtp.port;
});

View File

@ -6,7 +6,7 @@
smtpUser = "home.manager.jr"
[sendemail "hm@example.com"]
from = "hm@example.com"
from = "H. M. Test <hm@example.com>"
smtpEncryption = "ssl"
smtpServer = "smtp.example.com"
smtpSslCertPath = "/etc/ssl/certs/ca-certificates.crt"

View File

@ -6,8 +6,10 @@ with lib;
imports = [ ../../accounts/email-test-accounts.nix ];
config = {
accounts.email.accounts.hm-account.smtp.tls.certificatesFile =
"/etc/test/certificates.crt";
accounts.email.accounts.hm-account = {
smtp.tls.certificatesFile = "/etc/test/certificates.crt";
realName = mkForce "";
};
programs.git = {
enable = true;
package = pkgs.gitMinimal;
@ -33,7 +35,7 @@ with lib;
./git-with-email-expected.conf
}
assertGitConfig "sendemail.hm@example.com.from" "hm@example.com"
assertGitConfig "sendemail.hm@example.com.from" "H. M. Test <hm@example.com>"
assertGitConfig "sendemail.hm-account.from" "hm@example.org"
'';
};

View File

@ -1,5 +1,5 @@
[sendemail "hm-account"]
from = "hm@example.org"
from = "H. M. Test Jr. <hm@example.org>"
smtpEncryption = "tls"
smtpServer = "smtp.example.org"
smtpSslCertPath = "/etc/ssl/certs/ca-certificates.crt"

View File

@ -6,7 +6,11 @@ with lib;
imports = [ ../../accounts/email-test-accounts.nix ];
config = {
accounts.email.accounts."hm@example.com".msmtp.enable = true;
accounts.email.accounts."hm@example.com" = {
msmtp.enable = true;
realName = mkForce "";
};
programs.git = {
enable = true;
package = pkgs.gitMinimal;
@ -34,7 +38,7 @@ with lib;
${./git-with-msmtp-expected.conf}
assertGitConfig "sendemail.hm@example.com.from" "hm@example.com"
assertGitConfig "sendemail.hm-account.from" "hm@example.org"
assertGitConfig "sendemail.hm-account.from" "H. M. Test Jr. <hm@example.org>"
assertGitConfig "sendemail.hm@example.com.smtpServer" "${pkgs.msmtp}/bin/msmtp"
assertGitConfig "sendemail.hm@example.com.envelopeSender" "auto"
'';