# HG changeset patch
# User Christophe de Vienne <christophe@cdevienne.info>
# Date 1736202234 -3600
#      Mon Jan 06 23:23:54 2025 +0100
# Node ID f97d71bec55db08d63b0fcd36c3b7f768faa3c91
# Parent  8871b0bbb6771aeb6d1096b8da5bac8e77f0d306
serve: add --disable-mail-sender

diff --git a/cmd/rednerd/cmd/serve.go b/cmd/rednerd/cmd/serve.go
--- a/cmd/rednerd/cmd/serve.go
+++ b/cmd/rednerd/cmd/serve.go
@@ -54,6 +54,8 @@
 	options *Options
 
 	TokenOptions *auth.TokenOptions `no-flag:"t"`
+
+	DisableMailSender bool `long:"disable-mail-sender" description:"disable the mail sender routine"`
 }
 
 // Execute setup a server and runs it.
@@ -151,18 +153,22 @@
 	cmd.Server.SetLog(log)
 	cmd.Server.ConfigureAPI()
 
-	mailSenderContext, stopMailSender := context.WithCancel(context.Background())
-	mailSenderContext = log.WithContext(mailSenderContext)
+	if !cmd.DisableMailSender {
+		mailSenderContext, stopMailSender := context.WithCancel(context.Background())
+		mailSenderContext = log.WithContext(mailSenderContext)
+
+		if err := MailSender.Start(mailSenderContext, cmd.options.Dsn, db); err != nil {
+			stopMailSender()
 
-	if err := MailSender.Start(mailSenderContext, cmd.options.Dsn, db); err != nil {
-		stopMailSender()
+			return err
+		}
 
-		return err
+		defer func() {
+			stopMailSender()
+		}()
 	}
 
 	defer func() {
-		stopMailSender()
-
 		if err := cmd.Server.Shutdown(); err != nil {
 			log.Err(err).Msg("error shutting down the server")
 		}