58 lines
1.1 KiB
Go
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
|
|
}
|