From 9fac8ca0249a3d3ae714e56de6683e3ca1f77212 Mon Sep 17 00:00:00 2001 From: Chotow Date: Wed, 13 Nov 2024 22:51:30 +0800 Subject: [PATCH] refactor(config): ordinal priority --- model/config.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/model/config.go b/model/config.go index 81f2c41..ca0a9fe 100644 --- a/model/config.go +++ b/model/config.go @@ -111,12 +111,7 @@ func (c *Config) Read(path string) error { c.k = koanf.New(".") c.filePath = path - if _, err := os.Stat(path); err == nil { - err = c.k.Load(file.Provider(path), yaml.Parser()) - if err != nil { - return err - } - } + // 先读取环境变量,然后读取配置文件;后者可以覆盖前者,因为哪吒支持在线修改配置 err := c.k.Load(env.Provider("NZ_", ".", func(s string) string { return strings.Replace(strings.ToLower(strings.TrimPrefix(s, "NZ_")), "_", ".", -1) @@ -125,6 +120,13 @@ func (c *Config) Read(path string) error { return err } + if _, err := os.Stat(path); err == nil { + err = c.k.Load(file.Provider(path), yaml.Parser()) + if err != nil { + return err + } + } + err = c.k.Unmarshal("", c) if err != nil { return err @@ -180,6 +182,7 @@ func (c *Config) Read(path string) error { c.Oauth2.OidcGroupClaim = "groups" } + panic(1) c.updateIgnoredIPNotificationID() return nil }