nitter/internal/commands/result.go
Peter Kurfer 6507d44725
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is passing
feat: run PoC in pipeline
2023-03-08 16:37:00 +01:00

41 lines
871 B
Go

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
}