diff options
Diffstat (limited to 'internal/validate/validate.go')
| -rw-r--r-- | internal/validate/validate.go | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/internal/validate/validate.go b/internal/validate/validate.go index d77eafa..a7ce1b0 100644 --- a/internal/validate/validate.go +++ b/internal/validate/validate.go @@ -126,7 +126,7 @@ func Run(s Source) []Issue { func validateRoomFilenames(dataDir string) []Issue { dir := filepath.Join(dataDir, "rooms") var issues []Issue - _ = behavior.WalkYAMLDir(dir, func(path, id string, data []byte) error { + if err := behavior.WalkYAMLDir(dir, func(path, id string, data []byte) error { if _, err := strconv.Atoi(id); err != nil { rel := strings.TrimPrefix(path, dataDir+"/") issues = append(issues, Issue{ @@ -136,7 +136,13 @@ func validateRoomFilenames(dataDir string) []Issue { }) } return nil - }) + }); err != nil { + issues = append(issues, Issue{ + Level: "ERROR", + Type: "integrity", + Message: fmt.Sprintf("rooms: could not scan room files: %v", err), + }) + } return issues } @@ -159,7 +165,7 @@ func validateKnownFields(dataDir string, extra []KnownFieldTarget) []Issue { var issues []Issue for _, t := range targets { dir := filepath.Join(dataDir, t.SubDir) - _ = behavior.WalkYAMLDir(dir, func(path, id string, data []byte) error { + if err := behavior.WalkYAMLDir(dir, func(path, id string, data []byte) error { dec := yaml.NewDecoder(bytes.NewReader(data)) dec.KnownFields(true) if err := dec.Decode(t.NewDef()); err != nil { @@ -171,7 +177,13 @@ func validateKnownFields(dataDir string, extra []KnownFieldTarget) []Issue { }) } return nil - }) + }); err != nil { + issues = append(issues, Issue{ + Level: "ERROR", + Type: "unknown-field", + Message: fmt.Sprintf("%s: could not scan %s: %v", t.Label, t.SubDir, err), + }) + } } // cards.yaml lives at the data root rather than a subdirectory. if data, err := os.ReadFile(filepath.Join(dataDir, "cards.yaml")); err == nil { |
