Propagate error when linter cannot be run
We now return an error if any linter is unable to run to not exit on 0 in that case. Closes #451 Signed-off-by: Sascha Grunert <sgrunert@suse.com>
This commit is contained in:
parent
ae427c1eda
commit
f3e349fb5c
@ -315,7 +315,11 @@ func (e *Executor) runAnalysis(ctx context.Context, args []string) ([]result.Iss
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
issues := runner.Run(ctx, enabledLinters, lintCtx)
|
issues, err := runner.Run(ctx, enabledLinters, lintCtx)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
fixer := processors.NewFixer(e.cfg, e.log, e.fileCache)
|
fixer := processors.NewFixer(e.cfg, e.log, e.fileCache)
|
||||||
return fixer.Process(issues), nil
|
return fixer.Process(issues), nil
|
||||||
}
|
}
|
||||||
|
@ -175,24 +175,26 @@ func (r Runner) printPerProcessorStat(stat map[string]processorStat) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r Runner) Run(ctx context.Context, linters []*linter.Config, lintCtx *linter.Context) []result.Issue {
|
func (r Runner) Run(ctx context.Context, linters []*linter.Config, lintCtx *linter.Context) ([]result.Issue, error) {
|
||||||
sw := timeutils.NewStopwatch("linters", r.Log)
|
sw := timeutils.NewStopwatch("linters", r.Log)
|
||||||
defer sw.Print()
|
defer sw.Print()
|
||||||
|
|
||||||
var issues []result.Issue
|
var issues []result.Issue
|
||||||
|
var runErr error
|
||||||
for _, lc := range linters {
|
for _, lc := range linters {
|
||||||
lc := lc
|
lc := lc
|
||||||
sw.TrackStage(lc.Name(), func() {
|
sw.TrackStage(lc.Name(), func() {
|
||||||
linterIssues, err := r.runLinterSafe(ctx, lintCtx, lc)
|
linterIssues, err := r.runLinterSafe(ctx, lintCtx, lc)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
r.Log.Warnf("Can't run linter %s: %s", lc.Linter.Name(), err)
|
r.Log.Warnf("Can't run linter %s: %s", lc.Linter.Name(), err)
|
||||||
|
runErr = err
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
issues = append(issues, linterIssues...)
|
issues = append(issues, linterIssues...)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
return r.processLintResults(issues)
|
return r.processLintResults(issues), runErr
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Runner) processIssues(issues []result.Issue, sw *timeutils.Stopwatch, statPerProcessor map[string]processorStat) []result.Issue {
|
func (r *Runner) processIssues(issues []result.Issue, sw *timeutils.Stopwatch, statPerProcessor map[string]processorStat) []result.Issue {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user