MCPcopy Create free account
hub / github.com/GoMudEngine/GoMud / loadMutatorFileFromFS

Function loadMutatorFileFromFS

internal/mutators/plugin.go:52–81  ·  view source on GitHub ↗
(subFS fs.ReadFileFS, path string, dst map[string]*MutatorSpec)

Source from the content-addressed store, hash-verified

50}
51
52func loadMutatorFileFromFS(subFS fs.ReadFileFS, path string, dst map[string]*MutatorSpec) {
53 b, err := subFS.ReadFile(path)
54 if err != nil {
55 mudlog.Error("mutators.loadMutatorsFromFS", "path", path, "error", err)
56 return
57 }
58
59 var spec MutatorSpec
60 if err := yaml.Unmarshal(b, &spec); err != nil {
61 mudlog.Error("mutators.loadMutatorsFromFS", "path", path, "error", err)
62 return
63 }
64
65 if !strings.HasSuffix(path, spec.Filepath()) {
66 mudlog.Error("mutators.loadMutatorsFromFS", "path", path, "expected suffix", spec.Filepath(), "error", "filepath mismatch")
67 return
68 }
69
70 if err := spec.Validate(); err != nil {
71 mudlog.Error("mutators.loadMutatorsFromFS", "path", path, "error", err)
72 return
73 }
74
75 if _, exists := dst[spec.MutatorId]; exists {
76 mudlog.Error("mutators.loadMutatorsFromFS", "mutatorId", spec.MutatorId, "path", path, "error", "duplicate mutator id")
77 return
78 }
79
80 dst[spec.MutatorId] = &spec
81}

Callers 1

loadMutatorsFromFSFunction · 0.85

Calls 4

FilepathMethod · 0.95
ValidateMethod · 0.95
ErrorFunction · 0.92
ReadFileMethod · 0.45

Tested by

no test coverage detected