diff options
Diffstat (limited to 'internal/validate/validate.go')
| -rw-r--r-- | internal/validate/validate.go | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/internal/validate/validate.go b/internal/validate/validate.go index a7ce1b0..dbcf06f 100644 --- a/internal/validate/validate.go +++ b/internal/validate/validate.go @@ -110,6 +110,7 @@ func Run(s Source) []Issue { issues = append(issues, validateDropTables(s)...) issues = append(issues, validateCourses(s)...) issues = append(issues, validateRoomTriggers(s)...) + issues = append(issues, validateFlagTriggerFiles(s)...) issues = append(issues, validateTechs(s)...) issues = append(issues, validateRoomWiring(s)...) issues = append(issues, validateModuleDestinations(s)...) @@ -127,13 +128,21 @@ func validateRoomFilenames(dataDir string) []Issue { dir := filepath.Join(dataDir, "rooms") var issues []Issue if err := behavior.WalkYAMLDir(dir, func(path, id string, data []byte) error { - if _, err := strconv.Atoi(id); err != nil { + n, convErr := strconv.Atoi(id) + if convErr != nil { rel := strings.TrimPrefix(path, dataDir+"/") issues = append(issues, Issue{ Level: "ERROR", Type: "integrity", Message: fmt.Sprintf("room %s: filename is not a numeric room ID and the file is ignored", rel), }) + } else if n <= 0 { + rel := strings.TrimPrefix(path, dataDir+"/") + issues = append(issues, Issue{ + Level: "ERROR", + Type: "integrity", + Message: fmt.Sprintf("room %s: room ID must be positive, got %d", rel, n), + }) } return nil }); err != nil { |
