diff --git a/cmd/joj3/conf.go b/cmd/joj3/conf.go index 544c9d0..bcf28d8 100644 --- a/cmd/joj3/conf.go +++ b/cmd/joj3/conf.go @@ -85,11 +85,25 @@ func parseConfFile(path string, jobtype JobType) (conf Conf, err error) { slog.Error("parse stages conf", "error", err) return } + + if err = d.Validate(&conf); err != nil { + slog.Error("validate stages conf", "error", err) + return + } + + filteredStages := []Stage{} + for _, stage := range conf.Stages { + if filterStage(stage, jobtype) { + filteredStages = append(filteredStages, stage) + } + } + + conf.Stages = filteredStages + return } -func filterStage(stage Stage, jobtype JobType, -) bool { +func filterStage(stage Stage, jobtype JobType) bool { switch jobtype { case HC: return stage.Name == "healthcheck"