package commands import ( "encoding/json" "errors" "io" "os" "github.com/golangci/golangci-lint/pkg/printers" "github.com/golangci/golangci-lint/pkg/report" "github.com/golangci/golangci-lint/pkg/result" ) var ErrNoResult = errors.New("could not read result") func ReadResultsFile(filePath string) (report *report.Data, issues []result.Issue, err error) { if filePath == "" { return nil, nil, ErrNoResult } f, err := os.Open(filePath) if err != nil { return nil, nil, err } defer func() { err = errors.Join(err, f.Close()) }() return ReadResults(f) } func ReadResults(reader io.Reader) (*report.Data, []result.Issue, error) { decoder := json.NewDecoder(reader) var printerResult printers.JSONResult if err := decoder.Decode(&printerResult); err != nil { return nil, nil, err } return printerResult.Report, printerResult.Issues, nil }