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
 | 
						|
}
 |