diff --git a/cmd/joj3/conf.go b/cmd/joj3/conf.go index 436e807..49bf175 100644 --- a/cmd/joj3/conf.go +++ b/cmd/joj3/conf.go @@ -61,11 +61,21 @@ type OptionalCmd struct { } func parseConfFile(path string) (conf Conf, err error) { - m := multiconfig.NewWithPath(path) - if err = m.Load(&conf); err != nil { + d := &multiconfig.DefaultLoader{} + d.Loader = multiconfig.MultiLoader( + &multiconfig.TagLoader{}, + &multiconfig.JSONLoader{Path: path}, + ) + d.Validator = multiconfig.MultiValidator(&multiconfig.RequiredValidator{}) + if err = d.Load(&conf); err != nil { slog.Error("parse stages conf", "error", err) return } + if err = d.Validate(&conf); err != nil { + slog.Error("validate stages conf", "error", err) + return + } + slog.Error("parse stages conf", "conf", conf) return }