nitter/internal/commands/result.go

42 lines
871 B
Go
Raw Normal View History

2023-03-08 13:40:04 +00:00
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"
)
2023-03-08 15:13:49 +00:00
var ErrNoResult = errors.New("could not read result")
2023-03-08 13:40:04 +00:00
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
}