diff --git a/cmd/rednerd/cmd/serve.go b/cmd/rednerd/cmd/serve.go index 8871b0bbb6771aeb6d1096b8da5bac8e77f0d306_Y21kL3JlZG5lcmQvY21kL3NlcnZlLmdv..f97d71bec55db08d63b0fcd36c3b7f768faa3c91_Y21kL3JlZG5lcmQvY21kL3NlcnZlLmdv 100644 --- 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,6 +153,10 @@ 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() @@ -156,4 +162,4 @@ - if err := MailSender.Start(mailSenderContext, cmd.options.Dsn, db); err != nil { - stopMailSender() + return err + } @@ -159,5 +165,7 @@ - return err + defer func() { + stopMailSender() + }() } defer func() { @@ -161,8 +169,6 @@ } defer func() { - stopMailSender() - if err := cmd.Server.Shutdown(); err != nil { log.Err(err).Msg("error shutting down the server") }