diff --git a/cmd/main.go b/cmd/main.go index 4e30b79..b4c88d0 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -105,6 +105,7 @@ func main() { if err != nil { return } + // Run deps first, if we should error during deps // // Run analysis. analyzer := Analyzer{} @@ -113,44 +114,46 @@ func main() { if err != nil { return } - deps := &builder.Deps{} - if !d.Mode.Discovery && d.Mode.WithDeps { + if !d.Mode.Discovery { depAnalyzer := DepAnalyzer{} depAnalyzer.Data = d - deps, err = depAnalyzer.Run() - if err != nil { + deps, err := depAnalyzer.Run() + if deps == nil { + deps = &builder.Deps{} + } + if err != nil && d.Mode.WithDeps { return err } - } - // - // Post report. - appAnalysis := addon.Application.Analysis(application.ID) - mark := time.Now() - analysis := &api.Analysis{} - err = appAnalysis.Create( - analysis, - binding.MIMEYAML, - issues.Reader(), - deps.Reader()) - if err == nil { - addon.Activity("Analysis reported. duration: %s", time.Since(mark)) - } else { - ruleErr := &RuleError{} - if errors.As(err, &ruleErr) { - ruleErr.Report() - err = nil + // + // Post report. + appAnalysis := addon.Application.Analysis(application.ID) + mark := time.Now() + analysis := &api.Analysis{} + err = appAnalysis.Create( + analysis, + binding.MIMEYAML, + issues.Reader(), + deps.Reader()) + if err == nil { + addon.Activity("Analysis reported. duration: %s", time.Since(mark)) + } else { + ruleErr := &RuleError{} + if errors.As(err, &ruleErr) { + ruleErr.Report() + err = nil + } + return err + } + // + // Facts + facts := addon.Application.Facts(application.ID) + facts.Source(Source) + err = facts.Replace(issues.Facts()) + if err == nil { + addon.Activity("Facts updated.") + } else { + return err } - return - } - // - // Facts - facts := addon.Application.Facts(application.ID) - facts.Source(Source) - err = facts.Replace(issues.Facts()) - if err == nil { - addon.Activity("Facts updated.") - } else { - return } //