0
0
forked from toolshed/abra

WARN on recipe linting errors during --chaos..

..and show multiple linting errors instead of bailing on the first one.

Re #497
This commit is contained in:
3wc
2025-08-11 11:57:30 +01:00
committed by 3wordchant
parent 56a68dfa91
commit c63f6db61e
2 changed files with 13 additions and 3 deletions

View File

@ -108,8 +108,12 @@ checkout as-is. Recipe commit hashes are also supported as values for
}
if err := lint.LintForErrors(app.Recipe); err != nil {
if internal.Chaos {
log.Warn(err)
} else {
log.Fatal(err)
}
}
if err := validateSecrets(cl, app); err != nil {
log.Fatal(err)

View File

@ -184,6 +184,8 @@ var LintRules = map[string][]LintRule{
func LintForErrors(recipe recipe.Recipe) error {
log.Debugf("linting for critical errors in %s configs", recipe.Name)
var errors string
for level := range LintRules {
if level != "error" {
continue
@ -196,14 +198,18 @@ func LintForErrors(recipe recipe.Recipe) error {
ok, err := rule.Function(recipe)
if err != nil {
return fmt.Errorf("lint %s: %s", rule.Ref, err)
errors += fmt.Sprintf("\nlint %s: %s", rule.Ref, err)
}
if !ok {
return fmt.Errorf("lint error in %s configs: \"%s\" failed lint checks (%s)", recipe.Name, rule.Description, rule.Ref)
errors += fmt.Sprintf("\nlint error in %s configs: \"%s\" failed lint checks (%s)", recipe.Name, rule.Description, rule.Ref)
}
}
}
if (len(errors) > 0) {
return fmt.Errorf(errors[1:])
}
log.Debugf("linting successful, %s is well configured", recipe.Name)
return nil