From 0884f89431cd26bcc9674b3b7ab628b090f5881e Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Tue, 7 Dec 2021 13:31:39 +0100 Subject: Implement Cobra CLI tooling, Viper config tooling (#336) * start pulling out + replacing urfave and config * replace many many instances of config * move more stuff => viper * properly remove urfave * move some flags to root command * add testrig commands to root * alias config file keys * start adding cli parsing tests * reorder viper init * remove config path alias * fmt * change config file keys to non-nested * we're more or less in business now * tidy up the common func * go fmt * get tests passing again * add note about the cliparsing tests * reorganize * update docs with changes * structure cmd dir better * rename + move some files around * fix dangling comma --- internal/email/noopsender.go | 6 +++++- internal/email/sender.go | 20 ++++++++++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) (limited to 'internal/email') diff --git a/internal/email/noopsender.go b/internal/email/noopsender.go index 82eb8db44..d2c9bbb1b 100644 --- a/internal/email/noopsender.go +++ b/internal/email/noopsender.go @@ -23,13 +23,17 @@ import ( "html/template" "github.com/sirupsen/logrus" + "github.com/spf13/viper" + "github.com/superseriousbusiness/gotosocial/internal/config" ) // NewNoopSender returns a no-op email sender that will just execute the given sendCallback // every time it would otherwise send an email to the given toAddress with the given message value. // // Passing a nil function is also acceptable, in which case the send functions will just return nil. -func NewNoopSender(templateBaseDir string, sendCallback func(toAddress string, message string)) (Sender, error) { +func NewNoopSender(sendCallback func(toAddress string, message string)) (Sender, error) { + templateBaseDir := viper.GetString(config.Keys.WebTemplateBaseDir) + t, err := loadTemplates(templateBaseDir) if err != nil { return nil, err diff --git a/internal/email/sender.go b/internal/email/sender.go index a6a9abe55..546a5e9ce 100644 --- a/internal/email/sender.go +++ b/internal/email/sender.go @@ -23,6 +23,7 @@ import ( "html/template" "net/smtp" + "github.com/spf13/viper" "github.com/superseriousbusiness/gotosocial/internal/config" ) @@ -36,18 +37,25 @@ type Sender interface { } // NewSender returns a new email Sender interface with the given configuration, or an error if something goes wrong. -func NewSender(cfg *config.Config) (Sender, error) { - t, err := loadTemplates(cfg.TemplateConfig.BaseDir) +func NewSender() (Sender, error) { + keys := config.Keys + + templateBaseDir := viper.GetString(keys.WebTemplateBaseDir) + t, err := loadTemplates(templateBaseDir) if err != nil { return nil, err } - auth := smtp.PlainAuth("", cfg.SMTPConfig.Username, cfg.SMTPConfig.Password, cfg.SMTPConfig.Host) + username := viper.GetString(keys.SMTPUsername) + password := viper.GetString(keys.SMTPPassword) + host := viper.GetString(keys.SMTPHost) + port := viper.GetInt(keys.SMTPPort) + from := viper.GetString(keys.SMTPFrom) return &sender{ - hostAddress: fmt.Sprintf("%s:%d", cfg.SMTPConfig.Host, cfg.SMTPConfig.Port), - from: cfg.SMTPConfig.From, - auth: auth, + hostAddress: fmt.Sprintf("%s:%d", host, port), + from: from, + auth: smtp.PlainAuth("", username, password, host), template: t, }, nil } -- cgit v1.2.3