From a069ec9acf9d14c04d5e4e2c6eb29a49c21aa9b3 Mon Sep 17 00:00:00 2001 From: Victor Vrantchan Date: Fri, 16 Sep 2016 08:55:09 -0400 Subject: [PATCH] add devMode MailService to speed up testing (#178) running with the dev flag will print the content of an email to stdout --- cli/serve.go | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/cli/serve.go b/cli/serve.go index bcf95a5193..e17b66c5ef 100644 --- a/cli/serve.go +++ b/cli/serve.go @@ -46,7 +46,12 @@ the way that the kolide server works. logger = kitlog.NewLogfmtLogger(os.Stderr) logger = kitlog.NewContext(logger).With("ts", kitlog.DefaultTimestampUTC) - mailSvc := mail.NewService(config.SMTP) + var mailService kolide.MailService + if devMode { + mailService = devMailService{} + } else { + mailService = mail.NewService(config.SMTP) + } var ds kolide.Datastore var err error @@ -68,7 +73,7 @@ the way that the kolide server works. } } - svc, err := server.NewService(ds, logger, config, mailSvc) + svc, err := server.NewService(ds, logger, config, mailService) if err != nil { initFatal(err, "initializing service") } @@ -129,6 +134,23 @@ the way that the kolide server works. return serveCmd } +// used in devMode to print an email +// which would otherwise be sent via SMTP +type devMailService struct{} + +func (devMailService) SendEmail(e kolide.Email) error { + fmt.Println("---dev mode: printing email---") + defer fmt.Println("---dev mode: email printed---") + msg, err := e.Msg.Message() + if err != nil { + return err + } + fmt.Printf("From: %q To: %q \n", e.From, e.To) + _, err = os.Stdout.Write(msg) + return err + +} + // cors headers func accessControl(h http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {