feat: limit meta conf loaders
This commit is contained in:
parent
79446e7826
commit
d8ed5809cb
|
@ -6,6 +6,7 @@ import (
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"os"
|
"os"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/joint-online-judge/JOJ3/internal/stage"
|
"github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
"github.com/koding/multiconfig"
|
"github.com/koding/multiconfig"
|
||||||
|
@ -87,7 +88,18 @@ func parseMetaConfFile(path string) (metaConf MetaConf, err error) {
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
d := &multiconfig.DefaultLoader{}
|
d := &multiconfig.DefaultLoader{}
|
||||||
d.Loader = multiconfig.NewWithPath(path)
|
loaders := []multiconfig.Loader{}
|
||||||
|
loaders = append(loaders, &multiconfig.TagLoader{})
|
||||||
|
if strings.HasSuffix(path, "toml") {
|
||||||
|
loaders = append(loaders, &multiconfig.TOMLLoader{Path: path})
|
||||||
|
}
|
||||||
|
if strings.HasSuffix(path, "json") {
|
||||||
|
loaders = append(loaders, &multiconfig.JSONLoader{Path: path})
|
||||||
|
}
|
||||||
|
if strings.HasSuffix(path, "yml") || strings.HasSuffix(path, "yaml") {
|
||||||
|
loaders = append(loaders, &multiconfig.YAMLLoader{Path: path})
|
||||||
|
}
|
||||||
|
d.Loader = multiconfig.MultiLoader(loaders...)
|
||||||
d.Validator = multiconfig.MultiValidator(&multiconfig.RequiredValidator{})
|
d.Validator = multiconfig.MultiValidator(&multiconfig.RequiredValidator{})
|
||||||
if err = d.Load(&metaConf); err != nil {
|
if err = d.Load(&metaConf); err != nil {
|
||||||
slog.Error("parse meta conf", "error", err)
|
slog.Error("parse meta conf", "error", err)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user