github.com/StevenACoffman/golangci-lint@v1.10.1/pkg/result/processors/path_prettifier.go (about)

     1  package processors
     2  
     3  import (
     4  	"fmt"
     5  	"path/filepath"
     6  
     7  	"github.com/golangci/golangci-lint/pkg/fsutils"
     8  	"github.com/golangci/golangci-lint/pkg/result"
     9  )
    10  
    11  type PathPrettifier struct {
    12  	root string
    13  }
    14  
    15  var _ Processor = PathPrettifier{}
    16  
    17  func NewPathPrettifier() *PathPrettifier {
    18  	root, err := fsutils.Getwd()
    19  	if err != nil {
    20  		panic(fmt.Sprintf("Can't get working dir: %s", err))
    21  	}
    22  	return &PathPrettifier{
    23  		root: root,
    24  	}
    25  }
    26  
    27  func (p PathPrettifier) Name() string {
    28  	return "path_prettifier"
    29  }
    30  
    31  func (p PathPrettifier) Process(issues []result.Issue) ([]result.Issue, error) {
    32  	return transformIssues(issues, func(i *result.Issue) *result.Issue {
    33  		if !filepath.IsAbs(i.FilePath()) {
    34  			return i
    35  		}
    36  
    37  		rel, err := fsutils.ShortestRelPath(i.FilePath(), "")
    38  		if err != nil {
    39  			return i
    40  		}
    41  
    42  		newI := i
    43  		newI.Pos.Filename = rel
    44  		return newI
    45  	}), nil
    46  }
    47  
    48  func (p PathPrettifier) Finish() {}