MCPcopy Index your code
hub / github.com/Monibuca/engine / ParseModifyFile

Method ParseModifyFile

config/config.go:239–274  ·  view source on GitHub ↗

ParseModifyFile 第五步读取动态修改配置文件

(conf map[string]any)

Source from the content-addressed store, hash-verified

237
238// ParseModifyFile 第五步读取动态修改配置文件
239func (config *Config) ParseModifyFile(conf map[string]any) {
240 if conf == nil {
241 return
242 }
243 config.Modify = conf
244 for k, v := range conf {
245 if config.Has(k) {
246 if prop := config.Get(k); prop.props != nil {
247 if v != nil {
248 vmap := v.(map[string]any)
249 prop.ParseModifyFile(vmap)
250 if len(vmap) == 0 {
251 delete(conf, k)
252 }
253 }
254 } else {
255 mv := prop.assign(k, v)
256 v = mv.Interface()
257 vwm := prop.valueWithoutModify()
258 if equal(vwm, v) {
259 delete(conf, k)
260 if prop.Modify != nil {
261 prop.Modify = nil
262 prop.Ptr.Set(reflect.ValueOf(vwm))
263 }
264 continue
265 }
266 prop.Modify = v
267 prop.Ptr.Set(mv)
268 }
269 }
270 }
271 if len(conf) == 0 {
272 config.Modify = nil
273 }
274}
275
276func (config *Config) valueWithoutModify() any {
277 if config.Env != nil {

Callers 5

TestModifyFunction · 0.95
API_modifyConfigMethod · 0.80
API_updateConfigMethod · 0.80
assignMethod · 0.80
PullMethod · 0.80

Calls 7

HasMethod · 0.95
GetMethod · 0.95
equalFunction · 0.85
InterfaceMethod · 0.80
valueWithoutModifyMethod · 0.80
SetMethod · 0.80
assignMethod · 0.45

Tested by 1

TestModifyFunction · 0.76