aboutsummaryrefslogtreecommitdiff
path: root/internal/validate/validate.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/validate/validate.go')
-rw-r--r--internal/validate/validate.go11
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 {