Skip to content

Commit 2c041ac

Browse files
fix: config parsing defaults and time format
1 parent 041fbff commit 2c041ac

File tree

1 file changed

+36
-35
lines changed

1 file changed

+36
-35
lines changed

config/config.go

+36-35
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ func (p Parser) Parse(raw Raw) (Config, error) {
261261
case TimeFormat12H:
262262
timeHourFormat = helpers.TimeHourFormat12
263263
case TimeFormat24H:
264-
timeHourFormat = helpers.TimeHourFormat12
264+
timeHourFormat = helpers.TimeHourFormat24
265265
default:
266266
return Config{}, fmt.Errorf("invalid time format: %s", raw.TimeFormat)
267267
}
@@ -306,42 +306,43 @@ func NewParser(flags *flag.FlagSet) (Parser, error) {
306306
var k = koanf.New(".")
307307

308308
// Load defaults
309-
k.Load(structs.Provider(RawDefault, "koanf"), nil)
310-
311-
// Load YAML
312-
var configFile string
313-
if p := flags.Lookup("config"); p != nil && p.Value.String() != "" {
314-
// Config file from flag
315-
configFile = p.Value.String()
316-
} else {
317-
// Config file from default
318-
var err error
319-
configFile, err = resolve([]string{
320-
"config.yaml",
321-
"config.yml",
322-
".smtpbridge.yaml",
323-
".smtpbridge.yml",
324-
"~/.smtpbridge.yaml",
325-
"~/.smtpbridge.yml",
326-
"/etc/smtpbridge.yaml",
327-
"/etc/smtpbridge.yml",
328-
})
329-
if err != nil {
330-
return Parser{}, err
309+
k.Load(structs.ProviderWithDelim(RawDefault, "koanf", "."), nil)
310+
311+
if envConfig := os.Getenv("SMTPBRIDGE_CONFIG_YAML"); envConfig == "" {
312+
// Load YAML file
313+
var configFile string
314+
if p := flags.Lookup("config"); p != nil && p.Value.String() != "" {
315+
// Config file from flag
316+
configFile = p.Value.String()
317+
} else {
318+
// Config file from default
319+
var err error
320+
configFile, err = resolve([]string{
321+
"config.yaml",
322+
"config.yml",
323+
".smtpbridge.yaml",
324+
".smtpbridge.yml",
325+
"~/.smtpbridge.yaml",
326+
"~/.smtpbridge.yml",
327+
"/etc/smtpbridge.yaml",
328+
"/etc/smtpbridge.yml",
329+
})
330+
if err != nil {
331+
return Parser{}, err
332+
}
331333
}
332-
}
333-
if configFile != "" {
334-
log.Info().Str("path", configFile).Msg("Reading config from file")
335-
if err := k.Load(file.Provider(configFile), yaml.Parser()); err != nil {
336-
return Parser{}, err
334+
if configFile != "" {
335+
log.Info().Str("path", configFile).Msg("Reading config from file")
336+
if err := k.Load(file.Provider(configFile), yaml.Parser()); err != nil {
337+
return Parser{}, err
338+
}
339+
}
340+
} else {
341+
// Load YAML env
342+
if envConfig != "" {
343+
log.Info().Str("env", "SMTPBRIDGE_CONFIG_YAML").Msgf("Reading config from environment")
344+
k.Load(rawbytes.Provider([]byte(envConfig)), yaml.Parser())
337345
}
338-
}
339-
340-
// Load env
341-
envConfig := os.Getenv("SMTPBRIDGE_CONFIG_YAML")
342-
if envConfig != "" {
343-
log.Info().Str("env", "SMTPBRIDGE_CONFIG_YAML").Msgf("Reading config from environment")
344-
k.Load(rawbytes.Provider([]byte(envConfig)), yaml.Parser())
345346
}
346347

347348
// Load flag

0 commit comments

Comments
 (0)