Compose resilient CLI processing and report lifecycle
This commit is contained in:
@@ -151,7 +151,7 @@ func (s *OutputSession) Initialize(initial, failed ReportBundle) error {
|
||||
// Finalize publishes the transcript first, then errors, recoveries, and Markdown.
|
||||
// An empty transcript payload means processing failed and no transcript is written.
|
||||
// Every enabled report is attempted even after an earlier write failure.
|
||||
func (s *OutputSession) Finalize(transcript []byte, reports, failed ReportBundle) []FileFailure {
|
||||
func (s *OutputSession) Finalize(transcript []byte, reports ReportBundle, failed func([]FileFailure) ReportBundle) []FileFailure {
|
||||
if s == nil {
|
||||
return []FileFailure{{Kind: "output finalization", Err: fmt.Errorf("output session is required")}}
|
||||
}
|
||||
@@ -168,7 +168,7 @@ func (s *OutputSession) Finalize(transcript []byte, reports, failed ReportBundle
|
||||
}
|
||||
}
|
||||
if len(failures) > 0 {
|
||||
for i, payload := range bundleParts(failed) {
|
||||
for i, payload := range bundleParts(failed(failures)) {
|
||||
_ = s.replace(s.reports[i], payload)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user