cmd/hydroxide: add -debug flag

This commit is contained in:
Simon Ser 2020-02-29 12:34:20 +01:00
parent 4346b0163f
commit d65465dae5
No known key found for this signature in database
GPG Key ID: 0FDE7BE0E88F5E48
1 changed files with 16 additions and 8 deletions

View File

@ -33,24 +33,28 @@ func newClient() *protonmail.Client {
} }
} }
func listenAndServeSMTP(addr string, authManager *auth.Manager) error { func listenAndServeSMTP(addr string, debug bool, authManager *auth.Manager) error {
be := smtpbackend.New(authManager) be := smtpbackend.New(authManager)
s := smtp.NewServer(be) s := smtp.NewServer(be)
s.Addr = addr s.Addr = addr
s.Domain = "localhost" // TODO: make this configurable s.Domain = "localhost" // TODO: make this configurable
s.AllowInsecureAuth = true // TODO: remove this s.AllowInsecureAuth = true // TODO: remove this
//s.Debug = os.Stdout if debug {
s.Debug = os.Stdout
}
log.Println("SMTP server listening on", s.Addr) log.Println("SMTP server listening on", s.Addr)
return s.ListenAndServe() return s.ListenAndServe()
} }
func listenAndServeIMAP(addr string, authManager *auth.Manager, eventsManager *events.Manager) error { func listenAndServeIMAP(addr string, debug bool, authManager *auth.Manager, eventsManager *events.Manager) error {
be := imapbackend.New(authManager, eventsManager) be := imapbackend.New(authManager, eventsManager)
s := imapserver.New(be) s := imapserver.New(be)
s.Addr = addr s.Addr = addr
s.AllowInsecureAuth = true // TODO: remove this s.AllowInsecureAuth = true // TODO: remove this
//s.Debug = os.Stdout if debug {
s.Debug = os.Stdout
}
s.Enable(imapspacialuse.NewExtension()) s.Enable(imapspacialuse.NewExtension())
s.Enable(imapmove.NewExtension()) s.Enable(imapmove.NewExtension())
@ -103,6 +107,8 @@ func listenAndServeCardDAV(addr string, authManager *auth.Manager, eventsManager
} }
func main() { func main() {
debug := flag.Bool("debug", false, "Enable debug logs")
smtpHost := flag.String("smtp-host", "127.0.0.1", "Allowed SMTP email hostname on which hydroxide listens, defaults to 127.0.0.1") smtpHost := flag.String("smtp-host", "127.0.0.1", "Allowed SMTP email hostname on which hydroxide listens, defaults to 127.0.0.1")
smtpPort := flag.String("smtp-port", "1025", "SMTP port on which hydroxide listens, defaults to 1025") smtpPort := flag.String("smtp-port", "1025", "SMTP port on which hydroxide listens, defaults to 1025")
@ -302,12 +308,12 @@ func main() {
case "smtp": case "smtp":
addr := *smtpHost + ":" + *smtpPort addr := *smtpHost + ":" + *smtpPort
authManager := auth.NewManager(newClient) authManager := auth.NewManager(newClient)
log.Fatal(listenAndServeSMTP(addr, authManager)) log.Fatal(listenAndServeSMTP(addr, *debug, authManager))
case "imap": case "imap":
addr := *imapHost + ":" + *imapPort addr := *imapHost + ":" + *imapPort
authManager := auth.NewManager(newClient) authManager := auth.NewManager(newClient)
eventsManager := events.NewManager() eventsManager := events.NewManager()
log.Fatal(listenAndServeIMAP(addr, authManager, eventsManager)) log.Fatal(listenAndServeIMAP(addr, *debug, authManager, eventsManager))
case "carddav": case "carddav":
addr := *carddavHost + ":" + *carddavPort addr := *carddavHost + ":" + *carddavPort
authManager := auth.NewManager(newClient) authManager := auth.NewManager(newClient)
@ -323,10 +329,10 @@ func main() {
done := make(chan error, 3) done := make(chan error, 3)
go func() { go func() {
done <- listenAndServeSMTP(smtpAddr, authManager) done <- listenAndServeSMTP(smtpAddr, *debug, authManager)
}() }()
go func() { go func() {
done <- listenAndServeIMAP(imapAddr, authManager, eventsManager) done <- listenAndServeIMAP(imapAddr, *debug, authManager, eventsManager)
}() }()
go func() { go func() {
done <- listenAndServeCardDAV(carddavAddr, authManager, eventsManager) done <- listenAndServeCardDAV(carddavAddr, authManager, eventsManager)
@ -345,6 +351,8 @@ Commands:
status View hydroxide status status View hydroxide status
Flags: Flags:
-debug
Enable debug logs
-smtp-host example.com -smtp-host example.com
Allowed SMTP email hostname on which hydroxide listens, defaults to 127.0.0.1 Allowed SMTP email hostname on which hydroxide listens, defaults to 127.0.0.1
-imap-host example.com -imap-host example.com