golangci-lint/pkg/result/processors/exclude_processor.go
2018-05-05 19:43:52 +03:00

58 lines
1.1 KiB
Go

package processors
import (
"log"
"os"
"path/filepath"
"github.com/golangci/golangci-lint/pkg/result"
)
type PathPrettifier struct {
root string
}
var _ Processor = PathPrettifier{}
func NewPathPrettifier() *PathPrettifier {
root, err := os.Getwd()
if err != nil {
log.Fatalf("Can't get working dir: %s", err)
}
return &PathPrettifier{
root: root,
}
}
func (p PathPrettifier) Name() string {
return "path_prettifier"
}
func (p PathPrettifier) processResult(res result.Result) result.Result {
newRes := res
newRes.Issues = []result.Issue{}
for _, i := range res.Issues {
if filepath.IsAbs(i.File) {
if rel, err := filepath.Rel(p.root, i.File); err == nil {
newI := i
newI.File = rel
newRes.Issues = append(newRes.Issues, newI)
continue
}
}
newRes.Issues = append(newRes.Issues, i)
}
return newRes
}
func (p PathPrettifier) Process(results []result.Result) ([]result.Result, error) {
retResults := []result.Result{}
for _, res := range results {
retResults = append(retResults, p.processResult(res))
}
return retResults, nil
}