feat(stage): parser force quit only on stage ends

This commit is contained in:
张泊明518370910136 2024-10-11 04:42:19 -04:00
parent 6620f9bc28
commit 4eb030a6d6
GPG Key ID: D47306D7062CDA9D

View File

@ -32,6 +32,7 @@ func Run(stages []Stage) (stageResults []StageResult, err error) {
slog.Debug("executor run done", "result.Files", executorResult.Files) slog.Debug("executor run done", "result.Files", executorResult.Files)
} }
parserResults = []ParserResult{} parserResults = []ParserResult{}
stageForceQuit := false
for _, stageParser := range stage.Parsers { for _, stageParser := range stage.Parsers {
slog.Info("parser run start", "name", stageParser.Name) slog.Info("parser run start", "name", stageParser.Name)
slog.Debug("parser run start", "name", stageParser.Name, slog.Debug("parser run start", "name", stageParser.Name,
@ -48,6 +49,7 @@ func Run(stages []Stage) (stageResults []StageResult, err error) {
slog.Error("parser run error", "name", stageParser.Name, "error", err) slog.Error("parser run error", "name", stageParser.Name, "error", err)
return return
} }
stageForceQuit = stageForceQuit || forceQuit
slog.Debug("parser run done", "results", tmpParserResults) slog.Debug("parser run done", "results", tmpParserResults)
if len(parserResults) == 0 { if len(parserResults) == 0 {
parserResults = tmpParserResults parserResults = tmpParserResults
@ -59,15 +61,14 @@ func Run(stages []Stage) (stageResults []StageResult, err error) {
} }
if forceQuit { if forceQuit {
slog.Error("parser force quit", "name", stageParser.Name) slog.Error("parser force quit", "name", stageParser.Name)
break
} }
} }
stageResults = append(stageResults, StageResult{ stageResults = append(stageResults, StageResult{
Name: stage.Name, Name: stage.Name,
Results: parserResults, Results: parserResults,
ForceQuit: forceQuit, ForceQuit: stageForceQuit,
}) })
if forceQuit { if stageForceQuit {
break break
} }
} }