MCPcopy Create free account
hub / github.com/driangle/taskmd / validateConfig

Function validateConfig

apps/cli/internal/cli/validate.go:197–222  ·  view source on GitHub ↗

validateConfig runs config and cross-validation checks, merging results into validationResult.

(v *validator.Validator, validationResult *validator.ValidationResult, tasks []*model.Task)

Source from the content-addressed store, hash-verified

195
196// validateConfig runs config and cross-validation checks, merging results into validationResult.
197func validateConfig(v *validator.Validator, validationResult *validator.ValidationResult, tasks []*model.Task) {
198 configData := loadConfigForValidation()
199 mergeValidationResults(validationResult, v.ValidateConfig(configData))
200
201 if configData != nil && len(configData.Scopes) > 0 {
202 knownScopes := make(map[string]bool, len(configData.Scopes))
203 for name := range configData.Scopes {
204 knownScopes[name] = true
205 }
206 mergeValidationResults(validationResult, v.ValidateTouchesAgainstScopes(tasks, knownScopes))
207 }
208
209 if configData != nil && len(configData.Phases) > 0 {
210 knownPhases := make(map[string]bool, len(configData.Phases))
211 for _, m := range configData.Phases {
212 key := m.ID
213 if key == "" {
214 key = m.Name // backwards compat: fall back to name if no id
215 }
216 if key != "" {
217 knownPhases[key] = true
218 }
219 }
220 mergeValidationResults(validationResult, v.ValidatePhasesAgainstConfig(tasks, knownPhases))
221 }
222}
223
224// loadConfigForValidation extracts config data from viper for validation.
225// Returns nil if no config file was loaded.

Callers 2

runValidateFunction · 0.85

Calls 5

loadConfigForValidationFunction · 0.85
mergeValidationResultsFunction · 0.85
ValidateConfigMethod · 0.65

Tested by 1