1
0
mirror of https://github.com/jhillyerd/inbucket.git synced 2025-12-17 09:37:02 +00:00

Use enum for MailboxNaming for #33

This commit is contained in:
James Hillyerd
2018-04-04 21:40:53 -07:00
parent ff2121fbb9
commit bf152adbef
3 changed files with 32 additions and 8 deletions

View File

@@ -1,6 +1,7 @@
package config
import (
"fmt"
"log"
"os"
"strings"
@@ -29,10 +30,33 @@ var (
BuildDate = ""
)
// Root wraps all other configurations.
// mbNaming represents a mailbox naming strategy.
type mbNaming int
// Mailbox naming strategies.
const (
UnknownNaming mbNaming = iota
LocalNaming
FullNaming
)
// Decode a naming strategy from string.
func (n *mbNaming) Decode(v string) error {
switch strings.ToLower(v) {
case "local":
*n = LocalNaming
case "full":
*n = FullNaming
default:
return fmt.Errorf("Unknown MailboxNaming strategy: %q", v)
}
return nil
}
// Root contains global configuration, and structs with for specific sub-systems.
type Root struct {
LogLevel string `required:"true" default:"info" desc:"debug, info, warn, or error"`
MailboxNaming string `required:"true" default:"local" desc:"local or full"`
LogLevel string `required:"true" default:"info" desc:"debug, info, warn, or error"`
MailboxNaming mbNaming `required:"true" default:"local" desc:"local or full"`
SMTP SMTP
POP3 POP3
Web Web